Node.js: HTTP-сервер

Содержание
  1. Как создать HTTP-сервер? Протокол передачи гипертекста (HTTP) — это прикладной протокол для распределенных, совместных, гипермедийных информационных систем. HTTP — это основа передачи данных во всемирной паутине. Веб-сервер — это компьютерная система, которая обрабатывает запросы через HTTP, основной сетевой протокол, используемый для распространения информации во всемирной паутине. Термин может относиться либо ко всей системе, либо конкретно к программному обеспечению, которое принимает и контролирует HTTP-запросы. Чаще всего веб-серверы используются для размещения веб-сайтов, но есть и другие применения, такие как игры, хранение данных, запуск корпоративных приложений, обработка электронной почты, FTP или другое использование Интернета. Это просто для создания HTTP-сервера в Node.js. Сервер Node обычно создается с помощью метода createServer модуля http. См. Следующий пример: Пример: var http = require ('http'); var server = http.createServer (function (req, res) {res.writeHead (200); res.end ('

    HTTP-модуль Learning Node.js!

    ');}); server.listen (8080 ); Теперь сохраните приведенный выше код в файле с именем test_server.js и выполните следующую команду: node test_server. js После выполнения указанной выше команды программа зависнет там, ожидая ответа от соединений. Чтобы ответить, откройте браузер и введите localhost: 8080 в адресную строку. Если все было настроено правильно, вы должны увидеть, что ваш сервер говорит: «Learning Node.js http module!». Каждый раз, когда происходит запрос, запускается обратный вызов функции (req, res) и строка записывается как ответ. Следующая строка, server.listen (8080), вызывает метод прослушивания, который заставляет сервер ждать входящих запросов на указанном порту — 8080, в этом case. Возможности: http модуль http.STATUS_CODES; Коллекция всех стандартных кодов состояния ответа HTTP и краткое описание каждого из них. http.request (options , [Перезвоните]); Эта функция позволяет прозрачно отправлять запросы. http.get (параметры, [обратный вызов]); Установите для метода значение GET и автоматически вызовите req.end (). server = http.createServer ([requestListener]); Возвращает новый объект веб-сервера. RequestListener — это функция, которая автоматически добавляется к событию ‘request’. server.listen (port, [hostname], [backlog], [callback ]); Начать прием соединений на указанном порту и имени хоста. server.listen (path, [callback]); Запустить сервер сокетов UNIX, прослушивающий соединения по заданному пути. сервер. слушать (дескриптор, [обратный вызов]); Объект-дескриптор может быть установлен как на сервер, так и на сокет (что угодно с нижележащим членом _handle) или объект {fd: }. server.close ([обратный вызов]); Запрещает серверу принимать новые соединения. server.setTimeout (мсек, обратный вызов); Устанавливает значение тайм-аута для сокетов и генерирует событие «тайм-аут» на объекте Server, передавая сокет в качестве аргумента, если истекает тайм-аут. server.maxHeadersCount; Ограничивает максимальное количество входящих заголовков, по умолчанию равное 1000. Если установлено значение 0 — ограничение не применяется. server.timeout; Количество миллисекунд бездействия до истечения тайм-аута сокета. server.on (‘запрос’, функция (запрос, ответ) {}); Генерируется каждый раз, когда есть запрос. server.on (‘соединение’, функция (сокет) {}); Когда установлен новый поток TCP. server.on (‘close’, function () {}); Генерируется при закрытии сервера. server.on (‘checkContinue’, функция (запрос, ответ) {}); Генерируется каждый раз, когда получен запрос с http Expect: 100-continue. server.on (‘соединение’, функция (запрос, сокет, голова) {}); Генерируется каждый раз, когда клиент запрашивает метод http CONNECT. server.on (‘upgrade’, function (request, socket, head) {}); Испускается каждый раз клиент запрашивает обновление http. server.on (‘clientError’, function (exception, socket) {}); Если клиентское соединение выдает событие «ошибка» — оно будет перенаправлено сюда. request.write (chunk, [кодировка]); Отправляет фрагмент тела. request.end ([данные], [кодировка]); Завершает отправку запроса. Если какие-либо части тела не отправлены, он смывает их в ручей. request.abort (); Отменяет запрос. request.setTimeout (timeout, [callback]); Как только сокет назначен этому запросу и подключен сокет .setTimeout () будет вызываться. request.setNoDelay ([noDelay]); Как только сокет назначен этому запросу и подключен socket.setNoDelay () будет вызываться. request.setSocketKeepAlive ([enable], [initialDelay]); После того, как сокет назначен этому запросу и connected socket.setKeepAlive () будет вызываться. request.on (‘ответ’, функция (ответ) {} ); Генерируется при получении ответа на этот запрос. Это событие генерируется только один раз. запрос. on (‘socket’, function (socket) {}); Испускается после того, как сокет назначен этому запросу. request.on (‘connect’, function (response, socket, head) {}); Испускается каждый раз сервер отвечает на запрос методом CONNECT. Если это событие не прослушивается, клиенты, получающие метод CONNECT, будут закрывать свои соединения. request.on (‘upgrade’, function (response, socket, head) {}); Испускается каждый раз сервер отвечает на запрос обновлением. Если это событие не прослушивается, клиенты, получающие заголовок обновления, будут закрывать свои соединения. request.on (‘continue’, function () {}); Генерируется, когда сервер отправляет ‘100 Продолжить «HTTP-ответ, обычно потому, что запрос содержал» Expect: 100-continue «. Это инструкция, согласно которой клиент должен отправить тело запроса. ответ .write (кусок, [кодировка]); Это отправляет фрагмент тела ответа. Если этот метод вызван, а response.writeHead () не был вызван, он переключится в режим неявного заголовка и сбрасывает неявные заголовки. response.writeContinue (); Отправляет клиенту сообщение HTTP/1.1 100 Continue, указывающее, что тело запроса должно быть отправлено. response.writeHead (statusCode, [reasonPhrase], [headers]); Отправляет заголовок ответа на запрос. response.setTimeout (msecs, callback); Устанавливает значение тайм-аута Socket в msecs. Если предоставляется обратный вызов, он добавляется как прослушиватель события «тайм-аут» в объекте ответа. response.setHeader (name, value); Устанавливает одно значение заголовка для неявных заголовков. Если этот заголовок уже существует в заголовках для отправки, его значение будет заменено. Используйте здесь массив строк, если вам нужно отправить несколько заголовков с одним и тем же именем. response.getHeader (имя); Считывает заголовок, который уже поставлен в очередь, но не отправлен клиенту. Обратите внимание, что имя не чувствительно к регистру. response.removeHeader (name); Удаляет заголовок, помещенный в очередь для неявной отправки. response.addTrailers (заголовки); Этот метод добавляет к ответу завершающие заголовки HTTP (заголовок, но в конце сообщения). response.end ([данные], [кодировка]); Этот метод сигнализирует серверу, что все заголовки и тело ответа отправлены; этот сервер должен считать это сообщение завершенным. Метод response.end () ДОЛЖЕН вызываться для каждого ответа. response.statusCode; Когда использование неявных заголовков (не вызывающий ответ. writeHead () явно), это свойство контролирует код состояния, который будет отправлен клиенту, когда заголовки будут сброшены. response.headersSent; Boolean (только для чтения). Истина, если заголовки были отправлены, в противном случае — ложь. response.sendDate; Если установлено значение true, заголовок Date будет автоматически сгенерирован и отправлен в ответе, если это не так. уже присутствует в заголовках. По умолчанию — true. response.on (‘close’, function ( ) {}); Указывает, что базовое соединение было прервано до вызова response.end () или возможности его сброса. response.on (‘finish’, function () {}); Генерируется после отправки ответа. message.httpVersion; В в случае запроса сервера — версия HTTP, отправленная клиентом. В случае ответа клиента — версия HTTP подключенного сервера. message.headers; Объект заголовков запроса/ответа. message.trailers; Объект трейлеров запроса/ответа. Заполняется только после «конечного» события. message.method; Метод запроса в виде строки. Только чтение. Пример: «ПОЛУЧИТЬ», «УДАЛИТЬ». message.url; Строка URL-адреса запроса. Он содержит только URL-адрес, который присутствует в фактическом HTTP-запросе. message.statusCode; Трехзначный код состояния ответа HTTP. НАПРИМЕР. 404. message.socket; Объект net.Socket, связанный с подключением. Параметры host Доменное имя или IP-адрес сервера, на который будет отправлен запрос. По умолчанию — localhost. hostname Для поддержки url.parse () имя хоста предпочтительнее хоста port Порт удаленного сервера. По умолчанию 80. localAddress Локальный интерфейс для привязки сетевых подключений. socketPath Unix Domain Socket (используйте один из host: port или socketPath) метод Строка, определяющая метод HTTP-запроса. По умолчанию — GET. path Путь запроса. По умолчанию ‘/’. Должен включать строку запроса, если таковая имеется. НАПРИМЕР. ‘/index.html?page=12’ headers Объект, содержащий заголовки запроса. auth Обычная проверка подлинности, то есть «пользователь: пароль» для вычисления заголовка авторизации. агент Управляет поведением агента. Когда используется агент, запрос по умолчанию будет Connection: keep-alive. Возможные значения: undefined (по умолчанию): использовать глобальный агент для этого хоста и порта. Объект агента: явно использовать переданный агент. false: отказывается от объединения в пул с агентом, по умолчанию запрос Connection: close. Пример: Node.js Генерировать HTML В следующем примере отображается текст с тегами h1 и абзацем. var http = require ('http'); http.createServer (function (req, res) {var html = buildHtml (req); res.writeHead (200, { 'Content-Type': 'text/html', 'Content-Length': html.length, 'Expires': new Date (). ToUTCString ()}); res.end (html);}). Listen (8080). ); function buildHtml (req) {var header = ''; var body = '

    Учебник по Node.js

    Мы изучаем модуль http >'; return '' + '

    ' + header + '

    ' + body + ' '; };

    Доступ к указанному выше HTML с http://localhost: 8080 из вашего браузера.

    Как сделать http-запрос?

    Совершение внешних HTTP-вызовов для сетевого приложения является чрезвычайно распространенной задачей программирования. Node.js предоставляет простой API для этой функции в виде http.request. В следующем примере мы делаем запрос GET к https://www.w3resource.com/php/function-reference/srand-example.php (который возвращает случайное целое число) и выводим результат на консоль.

    Пример:

      var http = require ('http');//Заполните URL-адрес, чтобы получить случайные числа  : 'https://www.w3resource.com/php/function-reference/srand-example.php'var options = {host:' www.w3resource.com ', путь:'/php/function-reference/srand-  example.php '}; callback = функция (ответ) {var str =' '; //фрагмент данных получен и добавляем его в `str` response.on ('data', function (chunk) {str + = chunk;}); //весь ответ получен, теперь распечатайте его здесь response.on ('end', function () {console.log (str);});} http.request (options, callback) .end ();
    
    
    Вывод:
    E:  nodejs> node test.js1308772920E:  nodejs> node test.js1458134273E:  nodejs> node test.js1153445869E:   nodejs> node test.js1628318176E:  nodejs> node test.js1323706499
    
    
    Исходный код (srand-example.php): 
     Функция srand () запускает генератор случайных чисел.
    phpsrand (mktime ()); echo rand ();?>
    
    
    Код для выполнения запроса POST  почти идентичен выполнению запроса GET, за исключением нескольких простых модификаций.  Мы сделаем POST-запрос на www.w3resource.com с путем '/html/ul/html-ul-tag-example.html' и с помощью консоли соберем код файла, упомянутого в пути.
    
    
    Пример:
    var http = require ('http'); var options = {host: 'www.w3resource.  com ', путь:'/html/ul/html-ul-tag-example. html ', метод:' POST '}; callback = function (response) {var str =' 'response.on (' data ', function (chunk) {str + = chunk;}); response.on (' end '  , function () {console.log (str);});} var req = http.request (options, callback);//Это данные, которые мы публикуем, они должны быть строкой или буферомreq.write (  "");  req.end ();
    
    
    Вывод:
    E:  nodejs> node test.js     пример тега html ul
    Руководства
    Онлайн-редактор практики
    Примеры
    Ссылки
    Видео
    Прочитать данные POST
    
    
    Чтение данных из запроса POST (например, отправки формы) в Node.js.  Первым шагом является прослушивание входящих данных, а затем ожидание завершения данных, чтобы вы могли обработать все данные формы, ничего не теряя.  Вот пример:
    
    
    Пример:
    var http = require ('http'); var  uhtml = '   Пример сообщения  ' + '' + '

    Введите свое имя и адрес

    ' + ' '+' Имя:
    '+' Адрес:
    '+' '+' '+' '; http.createServer (function (req, res) {var body =" "; req.on (' data ', function ( кусок) {body + = chunk;}); req.on ('end', function () {console.log ('POSTed:' + body); res.writeHead (200); res.end (uhtml);} );}). listen (8080); В приведенном выше примере переменная uhtml представляет собой статическую строку, содержащую HTML-код для одной текстовой строки и двух полей ввода и отправки коробка. Этот HTML-код предоставлен для того, чтобы вы могли отправить некоторые данные на POST. Мы создали сервер для приема запросов. Как только все данные получены, мы записываем данные в консоль и отправляем ответ. Вывод: E: nodejs> node test.jsPOSTed: POSTed: name = Renuka & address = New-DelhiPOSTed: В приведенном выше выводе есть несколько строк без данных, например РАЗМЕЩЕНА:. Это происходит потому, что обычные запросы GET проходят через один и тот же кодовый путь. http.get (options, [callback]) Поскольку большинство запросов являются запросами GET без тел, Node предоставляет этот удобный метод. Здесь http.request () устанавливает метод на GET и автоматически вызывает req.end (). Вот пример: Пример: var http = require ('http'); http .get ("http://www.duckduckgo.com", function (res) {console.log ("Получил ответ:" + res.statusCode);}). on ('error', function (e) {console .log ("Получена ошибка:" + e.message);}); var http = require ('http'); Примечание: res.statuscode отправляет код состояния ответа (например, 404) клиенту, когда заголовки сбрасываются. Вывод: E: nodejs> node test.js Получил ответ: 301
  2. Возможности: http модуль
  3. Прочитать данные POST
  4. http.get (options, [callback])

Как создать HTTP-сервер?

Протокол передачи гипертекста (HTTP) — это прикладной протокол для распределенных, совместных, гипермедийных информационных систем. HTTP — это основа передачи данных во всемирной паутине.

Веб-сервер — это компьютерная система, которая обрабатывает запросы через HTTP, основной сетевой протокол, используемый для распространения информации во всемирной паутине. Термин может относиться либо ко всей системе, либо конкретно к программному обеспечению, которое принимает и контролирует HTTP-запросы. Чаще всего веб-серверы используются для размещения веб-сайтов, но есть и другие применения, такие как игры, хранение данных, запуск корпоративных приложений, обработка электронной почты, FTP или другое использование Интернета.

Это просто для создания HTTP-сервера в Node.js. Сервер Node обычно создается с помощью метода createServer модуля http. См. Следующий пример:

Пример:

  var http = require ('http'); var  server = http.createServer (function (req, res) {res.writeHead (200); res.end ('

HTTP-модуль Learning Node.js!

');}); server.listen (8080 );

Теперь сохраните приведенный выше код в файле с именем test_server.js и выполните следующую команду:

  node test_server.  js  

После выполнения указанной выше команды программа зависнет там, ожидая ответа от соединений. Чтобы ответить, откройте браузер и введите localhost: 8080 в адресную строку. Если все было настроено правильно, вы должны увидеть, что ваш сервер говорит: «Learning Node.js http module!».

Каждый раз, когда происходит запрос, запускается обратный вызов функции (req, res) и строка записывается как ответ.

Следующая строка, server.listen (8080), вызывает метод прослушивания, который заставляет сервер ждать входящих запросов на указанном порту — 8080, в этом case.

Возможности: http модуль

http.STATUS_CODES; Коллекция всех стандартных кодов состояния ответа HTTP и краткое описание каждого из них.
http.request (options , [Перезвоните]); Эта функция позволяет прозрачно отправлять запросы.
http.get (параметры, [обратный вызов]); Установите для метода значение GET и автоматически вызовите req.end ().
server = http.createServer ([requestListener]); Возвращает новый объект веб-сервера. RequestListener — это функция, которая автоматически добавляется к событию ‘request’.
server.listen (port, [hostname], [backlog], [callback ]); Начать прием соединений на указанном порту и имени хоста.
server.listen (path, [callback]); Запустить сервер сокетов UNIX, прослушивающий соединения по заданному пути.
сервер. слушать (дескриптор, [обратный вызов]); Объект-дескриптор может быть установлен как на сервер, так и на сокет (что угодно с нижележащим членом _handle) или объект {fd: }.
server.close ([обратный вызов]); Запрещает серверу принимать новые соединения.
server.setTimeout (мсек, обратный вызов); Устанавливает значение тайм-аута для сокетов и генерирует событие «тайм-аут» на объекте Server, передавая сокет в качестве аргумента, если истекает тайм-аут.
server.maxHeadersCount; Ограничивает максимальное количество входящих заголовков, по умолчанию равное 1000. Если установлено значение 0 — ограничение не применяется.
server.timeout; Количество миллисекунд бездействия до истечения тайм-аута сокета.
server.on (‘запрос’, функция (запрос, ответ) {}); Генерируется каждый раз, когда есть запрос.
server.on (‘соединение’, функция (сокет) {}); Когда установлен новый поток TCP.
server.on (‘close’, function () {}); Генерируется при закрытии сервера.
server.on (‘checkContinue’, функция (запрос, ответ) {}); Генерируется каждый раз, когда получен запрос с http Expect: 100-continue.
server.on (‘соединение’, функция (запрос, сокет, голова) {}); Генерируется каждый раз, когда клиент запрашивает метод http CONNECT.
server.on (‘upgrade’, function (request, socket, head) {}); Испускается каждый раз клиент запрашивает обновление http.
server.on (‘clientError’, function (exception, socket) {}); Если клиентское соединение выдает событие «ошибка» — оно будет перенаправлено сюда.
request.write (chunk, [кодировка]); Отправляет фрагмент тела.
request.end ([данные], [кодировка]); Завершает отправку запроса. Если какие-либо части тела не отправлены, он смывает их в ручей.
request.abort (); Отменяет запрос.
request.setTimeout (timeout, [callback]); Как только сокет назначен этому запросу и подключен сокет .setTimeout () будет вызываться.
request.setNoDelay ([noDelay]); Как только сокет назначен этому запросу и подключен socket.setNoDelay () будет вызываться.
request.setSocketKeepAlive ([enable], [initialDelay]); После того, как сокет назначен этому запросу и connected socket.setKeepAlive () будет вызываться.
request.on (‘ответ’, функция (ответ) {} ); Генерируется при получении ответа на этот запрос. Это событие генерируется только один раз.
запрос. on (‘socket’, function (socket) {}); Испускается после того, как сокет назначен этому запросу.
request.on (‘connect’, function (response, socket, head) {}); Испускается каждый раз сервер отвечает на запрос методом CONNECT. Если это событие не прослушивается, клиенты, получающие метод CONNECT, будут закрывать свои соединения.
request.on (‘upgrade’, function (response, socket, head) {}); Испускается каждый раз сервер отвечает на запрос обновлением. Если это событие не прослушивается, клиенты, получающие заголовок обновления, будут закрывать свои соединения.
request.on (‘continue’, function () {}); Генерируется, когда сервер отправляет ‘100 Продолжить «HTTP-ответ, обычно потому, что запрос содержал» Expect: 100-continue «. Это инструкция, согласно которой клиент должен отправить тело запроса.
ответ .write (кусок, [кодировка]); Это отправляет фрагмент тела ответа. Если этот метод вызван, а response.writeHead () не был вызван, он переключится в режим неявного заголовка и сбрасывает неявные заголовки.
response.writeContinue (); Отправляет клиенту сообщение HTTP/1.1 100 Continue, указывающее, что тело запроса должно быть отправлено.
response.writeHead (statusCode, [reasonPhrase], [headers]); Отправляет заголовок ответа на запрос.
response.setTimeout (msecs, callback); Устанавливает значение тайм-аута Socket в msecs. Если предоставляется обратный вызов, он добавляется как прослушиватель события «тайм-аут» в объекте ответа.
response.setHeader (name, value); Устанавливает одно значение заголовка для неявных заголовков. Если этот заголовок уже существует в заголовках для отправки, его значение будет заменено. Используйте здесь массив строк, если вам нужно отправить несколько заголовков с одним и тем же именем.
response.getHeader (имя); Считывает заголовок, который уже поставлен в очередь, но не отправлен клиенту. Обратите внимание, что имя не чувствительно к регистру.
response.removeHeader (name); Удаляет заголовок, помещенный в очередь для неявной отправки.
response.addTrailers (заголовки); Этот метод добавляет к ответу завершающие заголовки HTTP (заголовок, но в конце сообщения).
response.end ([данные], [кодировка]); Этот метод сигнализирует серверу, что все заголовки и тело ответа отправлены; этот сервер должен считать это сообщение завершенным. Метод response.end () ДОЛЖЕН вызываться для каждого ответа.
response.statusCode; Когда использование неявных заголовков (не вызывающий ответ. writeHead () явно), это свойство контролирует код состояния, который будет отправлен клиенту, когда заголовки будут сброшены.
response.headersSent; Boolean (только для чтения). Истина, если заголовки были отправлены, в противном случае — ложь.
response.sendDate; Если установлено значение true, заголовок Date будет автоматически сгенерирован и отправлен в ответе, если это не так. уже присутствует в заголовках. По умолчанию — true.
response.on (‘close’, function ( ) {}); Указывает, что базовое соединение было прервано до вызова response.end () или возможности его сброса.
response.on (‘finish’, function () {}); Генерируется после отправки ответа.
message.httpVersion; В в случае запроса сервера — версия HTTP, отправленная клиентом. В случае ответа клиента — версия HTTP подключенного сервера.
message.headers; Объект заголовков запроса/ответа.
message.trailers; Объект трейлеров запроса/ответа. Заполняется только после «конечного» события.
message.method; Метод запроса в виде строки. Только чтение. Пример: «ПОЛУЧИТЬ», «УДАЛИТЬ».
message.url; Строка URL-адреса запроса. Он содержит только URL-адрес, который присутствует в фактическом HTTP-запросе.
message.statusCode; Трехзначный код состояния ответа HTTP. НАПРИМЕР. 404.
message.socket; Объект net.Socket, связанный с подключением.

Параметры

host Доменное имя или IP-адрес сервера, на который будет отправлен запрос. По умолчанию — localhost.
hostname Для поддержки url.parse () имя хоста предпочтительнее хоста
port Порт удаленного сервера. По умолчанию 80.
localAddress Локальный интерфейс для привязки сетевых подключений.
socketPath Unix Domain Socket (используйте один из host: port или socketPath)
метод Строка, определяющая метод HTTP-запроса. По умолчанию — GET.
path Путь запроса. По умолчанию ‘/’. Должен включать строку запроса, если таковая имеется. НАПРИМЕР. ‘/index.html?page=12’
headers Объект, содержащий заголовки запроса.
auth Обычная проверка подлинности, то есть «пользователь: пароль» для вычисления заголовка авторизации.
агент Управляет поведением агента. Когда используется агент, запрос по умолчанию будет Connection: keep-alive.
Возможные значения:
undefined (по умолчанию): использовать глобальный агент для этого хоста и порта.
Объект агента: явно использовать переданный агент.
false: отказывается от объединения в пул с агентом, по умолчанию запрос Connection: close.

Пример:

Node.js Генерировать HTML

В следующем примере отображается текст с тегами h1 и абзацем.

  var http = require ('http'); http.createServer (function (req, res) {var html = buildHtml (req); res.writeHead (200, {  'Content-Type': 'text/html', 'Content-Length': html.length, 'Expires': new Date (). ToUTCString ()}); res.end (html);}). Listen (8080).  ); function buildHtml (req) {var header = ''; var body = '

Учебник по Node.js

Мы изучаем модуль http >'; return '' + '

' + header + '

' + body + ' '; };

Доступ к указанному выше HTML с http://localhost: 8080 из вашего браузера.

Как сделать http-запрос?

Совершение внешних HTTP-вызовов для сетевого приложения является чрезвычайно распространенной задачей программирования. Node.js предоставляет простой API для этой функции в виде http.request. В следующем примере мы делаем запрос GET к https://www.w3resource.com/php/function-reference/srand-example.php (который возвращает случайное целое число) и выводим результат на консоль.

Пример:

  var http = require ('http');//Заполните URL-адрес, чтобы получить случайные числа  : 'https://www.w3resource.com/php/function-reference/srand-example.php'var options = {host:' www.w3resource.com ', путь:'/php/function-reference/srand-  example.php '}; callback = функция (ответ) {var str =' '; //фрагмент данных получен и добавляем его в `str` response.on ('data', function (chunk) {str + = chunk;}); //весь ответ получен, теперь распечатайте его здесь response.on ('end', function () {console.log (str);});} http.request (options, callback) .end ();   

Вывод:

 E:  nodejs> node test.js1308772920E:  nodejs> node test.js1458134273E:  nodejs> node test.js1153445869E:   nodejs> node test.js1628318176E:  nodejs> node test.js1323706499 

Исходный код (srand-example.php):
Функция srand () запускает генератор случайных чисел.

   phpsrand (mktime ()); echo rand ();?>  

Код для выполнения запроса POST почти идентичен выполнению запроса GET, за исключением нескольких простых модификаций. Мы сделаем POST-запрос на www.w3resource.com с путем '/html/ul/html-ul-tag-example.html' и с помощью консоли соберем код файла, упомянутого в пути.

Пример:

  var http = require ('http'); var options = {host: 'www.w3resource.  com ', путь:'/html/ul/html-ul-tag-example. html ', метод:' POST '}; callback = function (response) {var str =' 'response.on (' data ', function (chunk) {str + = chunk;}); response.on (' end '  , function () {console.log (str);});} var req = http.request (options, callback);//Это данные, которые мы публикуем, они должны быть строкой или буферомreq.write (  "");  req.end ();  

Вывод:

 E:  nodejs> node test.js      пример тега html ul    
  • Руководства
  • Онлайн-редактор практики
  • Примеры
  • Ссылки
  • Видео

Прочитать данные POST

Чтение данных из запроса POST (например, отправки формы) в Node.js. Первым шагом является прослушивание входящих данных, а затем ожидание завершения данных, чтобы вы могли обработать все данные формы, ничего не теряя. Вот пример:

Пример:

  var http = require ('http'); var  uhtml = '   Пример сообщения  ' + '' + '

Введите свое имя и адрес

' + ' '+' Имя:
'+' Адрес:
'+' '+' '+' '; http.createServer (function (req, res) {var body =" "; req.on (' data ', function ( кусок) {body + = chunk;}); req.on ('end', function () {console.log ('POSTed:' + body); res.writeHead (200); res.end (uhtml);} );}). listen (8080);

В приведенном выше примере переменная uhtml представляет собой статическую строку, содержащую HTML-код для одной текстовой строки и двух полей ввода и отправки коробка. Этот HTML-код предоставлен для того, чтобы вы могли отправить некоторые данные на POST. Мы создали сервер для приема запросов. Как только все данные получены, мы записываем данные в консоль и отправляем ответ.

Вывод:

 E:   nodejs> node test.jsPOSTed: POSTed: name = Renuka & address = New-DelhiPOSTed: 

В приведенном выше выводе есть несколько строк без данных, например РАЗМЕЩЕНА:. Это происходит потому, что обычные запросы GET проходят через один и тот же кодовый путь.

http.get (options, [callback])

Поскольку большинство запросов являются запросами GET без тел, Node предоставляет этот удобный метод. Здесь http.request () устанавливает метод на GET и автоматически вызывает req.end (). Вот пример:

Пример:

  var http = require ('http'); http  .get ("http://www.duckduckgo.com", function (res) {console.log ("Получил ответ:" + res.statusCode);}). on ('error', function (e) {console  .log ("Получена ошибка:" + e.message);}); var http = require ('http');  

Примечание: res.statuscode отправляет код состояния ответа (например, 404) клиенту, когда заголовки сбрасываются.

Вывод:

 E:  nodejs> node test.js Получил ответ: 301 

Оцените статью
nanomode.ru
Добавить комментарий