Как создать простой веб-сервер на 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.
Чтобы установить пакет 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 :
Тестирование сервера
Чтобы выполнить код и запустить сервер, запустите команду node server в терминале или в командной строке в каталоге проекта. Это выполнит функцию обратного вызова, которую вы предоставили в методе .listen () .
Чтобы убедиться, что сервер работает, откройте веб-браузер и перейдите по адресу http: // localhost: 5000.
Точно так же, если вы посетите динамический маршрут, такой как http: // localhost: 5000 / muo , вторая функция обработчика запустится и отобразит:
Чтобы остановить сервер, нажмите Ctrl + C в Windows или Cmd + C в macOS.
Node.js может больше
Популярность JavaScript резко возрастает, поскольку разработчики используют его как во внешнем интерфейсе, так и в серверном. Это избавляет от необходимости изучать несколько языков программирования и помогает вам начать свой путь в качестве полнофункционального веб-разработчика, использующего только JavaScript.
Если вы решили, что предпочтете использовать язык программирования Google Go, создание базового веб-сервера станет отличным стартовым проектом.