`

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

Простой веб-сервер на Node.js

Для создания простейшего веб-сервера нам понадобится модуль http и его метод createServer(), который будет вызываться каждый раз когда на сервер поступает http-запрос. В самом методе createServer() опишем пару заголовков и html ответ, который получит пользователь при оправке http-запроса на ip адрес компьютера, с запущенным node сервером.

Для начала создадим файл server.js в рабочей директории (имя файла не важно).

touch /var/www/nodejs-app/server.js

Далее отредактируем его следующим образом. В примере я использую порт 46000, т.к. он находится в списке открытых портов в моём файлволле.

Теперь запустим наш веб-сервер.

[meliorem@centos /var/www/nodejs-app]$ node server
Node сервер запущен на localhost:46000. Нажмите Ctrl+C для остановки сервера.

Перейдем по адресу localhost:46000 для отправки одного единственного запроса и получим следующий ответ от сервера.

Вывод страницы с помощью веб-сервера на Node.js
Вывод страницы с помощью веб-сервера на Node.js

Обработка URL-адресов и отправка статических файлов в Node.js

Если вы работали с веб-серверами Apache или IIS, то наверняка знаете, что обработка URL и отправка статических файлов происходит в них автоматически и без лишних усилий. Node.js, в свою очередь, требует от нас вручную устанавливать методы парсинга URL-адресов, а также открывать, считывать и отправлять запрошенные пользователем файлы.

Далее рассмотрим пример создания директории www, в которой будут хранится статические html-файлы (index.html, about.html, 404.html) и изображение (img/logo.png) для нашего условного сайта.

Создадим необходимые файлы в рабочей директории.

mkdir -p /var/www/nodejs-app/www/img
touch /var/www/nodejs-app/www/{index.html,about.html,404.html}

Заполним файлы простым содержимым.

echo "<h1>Главная страница</h1>" > /var/www/nodejs-app/www/index.html
echo "<h1>О нас</h1>" > /var/www/nodejs-app/www/about.html
echo "<h1>Страница не найдена!</h1>" > /var/www/nodejs-app/www/404.html

Перейдем к редактированию файла server.js.

После запуска node сервера, мы сможем перейти к указанным в server.js файлам.

node server.js
Ответ сервера Node.js на запрос изображения
Ответ сервера Node.js на запрос изображения