В этой главе мы обсудим различные методы модуля веб-сервера PhantomJS.
близко
Метод close используется для закрытия веб-сервера.
Синтаксис
Его синтаксис выглядит следующим образом —
var server = require('webserver').create(); server.close();
пример
В следующем примере показано, как вы можете использовать метод close .
var webserver = require('webserver'); var server = webserver.create(); var service = server.listen(8080,function(request,response){ }); if(service) console.log("server started - http://localhost:" + server.port); console.log(server.port); server.close(); console.log(server.port);
Вышеуказанная программа генерирует следующий вывод .
server started - http://localhost:8080 8080
Здесь мы утешаем server.port после закрытия сервера. Следовательно, он не будет отвечать, так как веб-сервер уже закрыт.
Слушать
Метод server.listen принимает функцию port и callback с двумя аргументами, а именно: объект запроса и объект ответа .
Объект запроса содержит следующие свойства:
-
Метод — определяет метод GET / POST.
-
URL — отображает запрошенный URL.
-
httpVersion — отображает актуальную версию http.
-
Заголовки — отображает все заголовки с парами ключ-значение.
-
Post — тело запроса применимо только для метода post.
-
postRaw — если для заголовка Content-Type установлено значение application / x-www-formurlencoded, исходное содержимое сообщения будет сохранено в этом дополнительном свойстве (postRaw), а затем это сообщение будет автоматически обновлено с помощью URL-декодирования. версия данных.
Метод — определяет метод GET / POST.
URL — отображает запрошенный URL.
httpVersion — отображает актуальную версию http.
Заголовки — отображает все заголовки с парами ключ-значение.
Post — тело запроса применимо только для метода post.
postRaw — если для заголовка Content-Type установлено значение application / x-www-formurlencoded, исходное содержимое сообщения будет сохранено в этом дополнительном свойстве (postRaw), а затем это сообщение будет автоматически обновлено с помощью URL-декодирования. версия данных.
Объект ответа содержит следующие свойства:
-
Заголовки — содержит все заголовки HTTP в виде пар ключ-значение. Это должно быть установлено перед вызовом write в первый раз.
-
SetHeader — это устанавливает определенный заголовок.
-
Заголовок (имя) — возвращает значение данного заголовка.
-
StatusCode — устанавливает возвращаемый код состояния HTTP.
-
SetEncoding (encoding) — используется для преобразования данных, переданных в write (). По умолчанию данные будут преобразованы в UTF-8. Укажите «двоичный», если данные являются двоичной строкой. Не требуется, если данные являются буфером (например, из page.renderBuffer).
-
Запись (данные) — отправляет данные для тела ответа. Можно вызывать несколько раз.
-
WriteHead (statusCode, headers) — отправляет заголовок ответа на запрос. Код состояния представляет собой трехзначный код состояния HTTP (например, 404). Последние аргументы и заголовки являются заголовками ответа.
-
Закрыть — закрывает http соединение.
-
CloseGracefully — это похоже на close (), но оно гарантирует, что заголовки ответа были отправлены первыми.
Заголовки — содержит все заголовки HTTP в виде пар ключ-значение. Это должно быть установлено перед вызовом write в первый раз.
SetHeader — это устанавливает определенный заголовок.
Заголовок (имя) — возвращает значение данного заголовка.
StatusCode — устанавливает возвращаемый код состояния HTTP.
SetEncoding (encoding) — используется для преобразования данных, переданных в write (). По умолчанию данные будут преобразованы в UTF-8. Укажите «двоичный», если данные являются двоичной строкой. Не требуется, если данные являются буфером (например, из page.renderBuffer).
Запись (данные) — отправляет данные для тела ответа. Можно вызывать несколько раз.
WriteHead (statusCode, headers) — отправляет заголовок ответа на запрос. Код состояния представляет собой трехзначный код состояния HTTP (например, 404). Последние аргументы и заголовки являются заголовками ответа.
Закрыть — закрывает http соединение.
CloseGracefully — это похоже на close (), но оно гарантирует, что заголовки ответа были отправлены первыми.
Синтаксис
Его синтаксис выглядит следующим образом —
var server = require('webserver').create(); var listening = server.listen(8080, function (request, response) {}
пример
Давайте рассмотрим пример, чтобы понять, как работает метод listen .
var page = require('webpage').create(); var server = require('webserver').create(); var port = 8080; var listening = server.listen(8080, function (request, response) { console.log("GOT HTTP REQUEST"); console.log(JSON.stringify(request, null, 4)); // we set the headers here response.statusCode = 200; response.headers = {"Cache": "no-cache", "Content-Type": "text/html"}; // the headers above will now be sent implictly // now we write the body response.write("<html><head><title>Welcone to Phantomjs</title></head>"); response.write("<body><p>Hello World</p></body></html>"); response.close(); }); if (!listening) { console.log("could not create web server listening on port " + port); phantom.exit(); } var url = "http://localhost:" + port + "/foo/response.php"; console.log("sending request to :" +url); page.open(url, function (status) { if (status !== 'success') { console.log('page not opening'); } else { console.log("Getting response from the server:"); console.log(page.content); } phantom.exit(); });
Вышеуказанная программа генерирует следующий вывод .