Створення веб-сервера HTTP в Node.js: посібник із прикладом коду

Фреймворк Node.js здебільшого використовується для створення серверних програм. Фреймворк можна легко використовувати для створення веб-серверів, які можуть надавати вміст користувачам.

Існують різноманітні модулі, такі як «http» і «request», які допомагають обробляти запити, пов’язані з сервером, у просторі веб-сервера. Ми розглянемо, як ми можемо створити базову програму веб-сервера за допомогою Вузол js.

Вузол як веб-сервер за допомогою HTTP

Давайте розглянемо приклад того, як створити та запустити нашу першу програму Node js.

Наша програма збирається створити простий серверний модуль, який слухатиме порт № 7000. Якщо запит зроблено через браузер на цьому порту №, тоді серверна програма надішле клієнту відповідь «Hello World».

Вузол як веб-сервер за допомогою HTTP

Пояснення коду

  1. Основна функціональність функції require полягає в тому, що вона читає a JavaScript файл, виконує файл, а потім повертає об’єкт експорту. Отже, у нашому випадку, оскільки ми хочемо використовувати функціональність модуля http, ми використовуємо функцію require, щоб отримати потрібні функції з модуля http, щоб його можна було використовувати в нашій програмі.
  2. У цьому рядку коду ми створюємо серверну програму, яка базується на простій функції. Ця функція викликається кожного разу, коли надходить запит до нашої серверної програми.
  3. Коли запит отримано, ми кажемо надіслати відповідь із типом заголовка «200». Це число є звичайною відповіддю, яка надсилається в заголовку http, коли клієнту надсилається успішна відповідь.
  4. У самій відповіді ми надсилаємо рядок «Hello World».
  5. Потім ми використовуємо функцію server.listen, щоб наш серверний додаток слухав запити клієнта на порту № 7000. Ви можете вказати будь-який доступний порт тут.

Якщо команда виконана успішно, під час запуску коду в браузері буде показано наступний результат.

Вихід

Вузол як веб-сервер за допомогою HTTP

З виходу,

  • Ви можете чітко побачити, що якщо ми перейдемо до URL-адреси localhost на порту 7000, ви побачите на сторінці рядок «Hello World».
  • Оскільки в нашому коді ми згадали, що сервер прослуховує порт № 7000, ми можемо переглядати вихідні дані під час перегляду цієї URL-адреси.

Ось код для довідки

var http=require('http')
var server=http.createServer((function(request,response)
{
	response.writeHead(200,
	{"Content-Type" : "text/plain"});
	response.end("Hello World\n");
}));
server.listen(7000);

Обробка запитів GET у Node.js

Зробити запит GET для отримання даних з іншого сайту в Node.js відносно дуже просто. Щоб зробити запит Get у вузлі, нам спочатку потрібно встановити модуль запиту. Це можна зробити, виконавши наступний рядок у командному рядку

запит на встановлення npm

Наведена вище команда вимагає від менеджера пакетів Node завантажити необхідні модулі запитів і встановити їх відповідно.

Коли ваш модуль npm буде успішно встановлено, у командному рядку буде показано ім’я та версію встановленого модуля: @ .

Обробка запитів GET

На наведеному вище знімку ви бачите, що модуль запиту разом із номером версії 2.67.0 було завантажено та встановлено.

Тепер давайте подивимося код, який може використовувати цю команду "request".

Обробка запитів GET

Пояснення коду

  1. Ми використовуємо модуль запиту, встановлений на останньому кроці. Цей модуль має необхідні функції, які можна використовувати для надсилання запитів GET до веб-сайтів.
  2. Ми робимо запит GET на www.google.com і згодом викликаємо функцію, коли отримуємо відповідь. Після отримання відповіді параметри (помилка, відповідь і тіло) матимуть такі значення
    1. Помилка – якщо під час використання запиту GET виникає будь-яка помилка, вона буде записана тут.
    2. Відповідь – відповідь матиме заголовки http, які надсилаються у відповідь.
    3. Тіло – тіло міститиме весь вміст відповіді, надісланої Google.
  3. У цьому випадку ми просто записуємо вміст, отриманий у параметрі body, у файл console.log. Тож, по суті, все, до чого ми прийдемо www.google.com буде записано в console.log.

Ось код для довідки

var request = require("request");
	request("http://www.google.com",function(error,response,body)
	{
		console.log(body);
	});

Підсумки

  • Фреймворк Node.js можна використовувати для розробки веб-серверів за допомогою модуля «http». Програму можна змусити слухати певний порт і надсилати відповідь клієнту щоразу, коли до програми надходить запит.
  • Модуль «запит» можна використовувати для отримання інформації з веб-сайтів. Інформація міститиме весь вміст веб-сторінки, яку запитують на відповідному веб-сайті.