Створіть веб-сервер HTTP у Node.js: Повне керівництво

Зміст:

Anonim

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

Існує безліч модулів, таких як модуль "http" та "request", який допомагає обробляти запити, пов'язані з сервером, у просторі веб-сервера. Ми розглянемо, як ми можемо створити основний додаток веб-сервера за допомогою Node js.

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

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

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

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

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

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

Вихід:

З виходу,

  • Ви можете чітко бачити, що якщо ми перейдемо до 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. Щоб зробити запит на отримання у вузлі, нам спочатку потрібно встановити модуль запиту. Це можна зробити, виконавши наступний рядок у командному рядку

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

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

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

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

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

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

  1. Ми використовуємо модуль "запит", який було встановлено на останньому кроці. Цей модуль має необхідні функції, які можна використовувати для надсилання запитів GET на веб-сайти.
  2. Ми робимо запит GET на www.google.com і згодом викликаємо функцію, коли отримуємо відповідь. Коли отримано відповідь, параметри (помилка, відповідь та тіло) матимуть такі значення
    1. Помилка - у разі виникнення помилки, отриманої під час використання запиту GET, вона буде записана тут.
    2. Відповідь - Відповідь матиме заголовки http, які надсилаються назад у відповідь.
    3. Body - Основне тіло буде містити весь вміст відповіді, надісланої 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'. Програму можна змусити прослуховувати певний порт і надсилати відповідь клієнту щоразу, коли надходить запит до програми.
  • Модуль "запит" можна використовувати для отримання інформації з веб-сайтів. Інформація міститиме весь вміст веб-сторінки, запитуваної на відповідному веб-сайті.