Как создать простой веб-сервер на Node.js

Node.js стал одним из самых популярных вариантов для серверной разработки с момента его первого выпуска более десяти лет назад. Хотя он все еще относительно новый по сравнению с PHP и другими бэкэнд-технологиями, он широко используется такими техническими гигантами, как LinkedIn, PayPal, Netflix и другими.

В этой статье вы узнаете, как создать и запустить собственный веб-сервер с помощью Node.js и веб-фреймворка Express.js.

Используемые технологии и пакеты

Node.js – это среда выполнения JavaScript, построенная на движке Chrome V8, которая позволяет выполнять код JavaScript вне браузера. Традиционно язык программирования JavaScript используется для управления объектной моделью документа (DOM) , добавляя интерактивности веб-сайтам.

Из-за этого код JavaScript был ограничен для запуска только в браузере, поскольку модель DOM существует только на веб-страницах. С помощью Node.js вы можете запускать JavaScript в командной строке и на серверах. Поэтому перед началом работы важно установить на свой компьютер Node.js и npm .

С другой стороны, Express.js – это минималистичный веб-фреймворк, который де-факто стал базовым фреймворком для Node.js. Однако в Express.js нет необходимости. Вы по-прежнему можете использовать встроенный http- модуль Node.js для создания своего сервера. Express.js построен на основе модуля http и предоставляет более простой API со всеми необходимыми конфигурациями.

Создание веб-сервера

Чтобы лучше организовать свой код, вы можете начать с создания папки, в которой будут находиться все файлы и зависимости. Поскольку Express.js не является встроенным модулем Node.js, вам придется установить его с помощью npm.

Подробнее: что такое npm?

Чтобы установить пакет Express.js, запустите команду npm install express в терминале или в командной строке. Перед установкой убедитесь, что вы находитесь в каталоге проекта.

После завершения вы можете открыть папку с помощью текстового редактора или IDE по вашему выбору и создать новый файл с именем server.js . Чтобы использовать пакет Express.js, вы должны сначала импортировать и создать его экземпляр внутри файла server.js следующим образом:

 const express = require('express');
const app = express();

Основная цель веб-сервера – отвечать на запросы, поступающие с разных маршрутов, с помощью соответствующей функции обработчика. Этот код обрабатывает все запросы GET к корневому ( "/" ) пути и отвечает "Hello World!"

 app.get('/', (req, res) => {
res.send('<h1>Hello World</h1>');
});

Точно так же вы можете отображать динамический контент и выполнять другие операции в зависимости от пути и типа запроса, который вы делаете. Это можно сделать с помощью параметров маршрута, обозначенных точкой с запятой : перед параметром.

 app.get('/:name', (req, res) => {
res.send(`<h1>Welcome to ${req.params.name}!</h1>`);
};

В обоих приведенных выше примерах первая строка представляет использование метода .get () в Express.js, который принимает 2 параметра: конечную точку или маршрут и функцию обработчика обратного вызова, которая принимает запросы и объекты ответа в качестве параметров. Эти 2 параметра автоматически отправляются, когда вы делаете запрос.

Во второй строке ответ передается через метод .send () объекта ответа. Внутри скобок вы можете ввести любой текст или HTML-код, который хотите. В случае динамических маршрутов, доступ к req.params.name (так как вы использовали /: наименование) объекта запроса возвращает значение параметра динамического маршрута (название в данном случае.)

Наконец, чтобы начать прослушивание входящих запросов на порт, вы можете использовать метод .listen (), который принимает номер порта и дополнительную функцию обратного вызова для запуска при успешном выполнении.

 app.listen(5000, console.log('Server is running on port 5000'));

В этом примере я использовал порт 5000, но вы можете изменить его на любой допустимый порт. Это весь код, необходимый для создания базового веб-сервера с Node.js и Express.js. Эту же концепцию можно расширить, чтобы делать другие запросы, такие как POST , PUT или DELETE, по другим маршрутам. Вот как будет выглядеть файл server.js :

Код ExpressJS для веб-сервера

Тестирование сервера

Чтобы выполнить код и запустить сервер, запустите команду node server в терминале или в командной строке в каталоге проекта. Это выполнит функцию обратного вызова, которую вы предоставили в методе .listen () .

Чтобы убедиться, что сервер работает, откройте веб-браузер и перейдите по адресу http: // localhost: 5000.

Точно так же, если вы посетите динамический маршрут, такой как http: // localhost: 5000 / muo , вторая функция обработчика запустится и отобразит:

Чтобы остановить сервер, нажмите Ctrl + C в Windows или Cmd + C в macOS.

Node.js может больше

Популярность JavaScript резко возрастает, поскольку разработчики используют его как во внешнем интерфейсе, так и в серверном. Это избавляет от необходимости изучать несколько языков программирования и помогает вам начать свой путь в качестве полнофункционального веб-разработчика, использующего только JavaScript.

Если вы решили, что предпочтете использовать язык программирования Google Go, создание базового веб-сервера станет отличным стартовым проектом.