НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
NodeJS. Уроки W3Schools для початківців українською мовою

En

Node.js HTTP Модуль


Вбудований HTTP модуль

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

Щоб включити модуль HTTP, використовуйте метод require():

var http = require('http');

Node.js як вебсервер

Модуль HTTP може створити сервер HTTP, який прослуховує порти сервера та надсилає відповідь клієнту.

Використовуйте метод createServer(), щоб створити сервер HTTP:

Приклад

var http = require('http');

//створити об’єкт сервера:
http.createServer(function (req, res) {
  res.write('Hello World!'); //написати відповідь клієнту
  res.end(); //завершити відповідь
}).listen(8080); //об’єкт сервера прослуховує порт 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://localhost:8080/summer

Дасть такий результат:

/summer
Спробуйте самі »

http://localhost:8080/winter

Дасть такий результат:

/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

Адреса:

http://localhost:8080/?year=2017&month=July

Дасть такий результат:

2017 July
Спробуйте самі »

Дізнайтеся більше про URL-модуль у розділі Node.js URL-модуль.