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

ГЛАВНАЯ СТРАНИЦА Node.js Введение в Node.js Node.js Начало работы Модули Node.js HTTP-модуль Node.js Файловая система Node.js URL-модуль Node.js Node.js NPM События Node.js Загрузить файлы Node.js Электронная почта Node.js

Node.js MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу MySQL вставить в MySQL выбрать из MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Node.js MongoDB

Начать работу с MongoDB MongoDB Создать базу данных MongoDB Создать коллекцию Вставка MongoDB MongoDB Найти Запрос MongoDB Сортировка MongoDB MongoDB Удалить Коллекция MongoDB Drop Обновление MongoDB Лимит MongoDB Присоединиться к MongoDB

Малиновый Пи

Начать работу с RasPi Введение в RasPi GPIO Мигающий светодиод RasPi Светодиод RasPi и кнопка Проточные светодиоды RasPi Веб-сокет RasPi Веб-сокет со светодиодной подсветкой RasPi RGB Компоненты RasPi

Справочник по Node.js

Встроенные модули

HTTP-модуль Node.js


Встроенный HTTP-модуль

Node.js имеет встроенный модуль HTTP, который позволяет Node.js передавать данные по протоколу передачи гипертекста (HTTP).

Чтобы включить модуль HTTP, используйте require()метод:

var http = require('http');

Node.js как веб-сервер

Модуль HTTP может создать HTTP-сервер, который прослушивает порты сервера и возвращает ответ клиенту.

Используйте createServer()метод для создания HTTP-сервера:

Пример

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

Функция, переданная в http.createServer() метод, будет выполняться, когда кто-то попытается получить доступ к компьютеру через порт 8080.

Сохраните приведенный выше код в файле с именем «demo_http.js» и запустите файл:

Запустите demo_http.js:

C:\Users\Your Name>node demo_http.js

Если вы выполнили те же действия на своем компьютере, вы увидите тот же результат, что и в примере: http://localhost:8080



Добавить HTTP-заголовок

Если предполагается, что ответ от HTTP-сервера будет отображаться в формате HTML, вы должны включить HTTP-заголовок с правильным типом контента:

Пример

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

Первый аргумент res.writeHead()метода — код состояния, 200 означает, что все в порядке, второй аргумент — объект, содержащий заголовки ответа.


Чтение строки запроса

Передаваемая функция http.createServer() имеет reqаргумент, представляющий запрос от клиента в виде объекта (объект http.IncomingMessage).

Этот объект имеет свойство под названием «url», которое содержит часть URL-адреса, следующего за доменным именем:

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

Сохраните приведенный выше код в файле с именем «demo_http_url.js» и запустите файл:

Запустите demo_http_url.js:

C:\Users\Your Name>node demo_http_url.js

Если вы выполнили те же шаги на своем компьютере, вы должны увидеть два разных результата при открытии этих двух адресов:

http://локальный:8080/лето

Произведет этот результат:

/summer

http://локальный:8080/зима

Произведет этот результат:

/winter

Разделить строку запроса

Существуют встроенные модули, позволяющие легко разбивать строку запроса на читаемые части, например модуль URL.

Пример

Разделите строку запроса на читаемые части:

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

Сохраните приведенный выше код в файле с именем «demo_querystring.js» и запустите файл:

Запустите demo_querystring.js:

C:\Users\Your Name>node demo_querystring.js

Адрес:

Произведет этот результат:

2017 July

Подробнее о модуле URL читайте в главе « Модуль URL Node.js ».