Создание первого приложения на Node.js

В традиционной разработке на PHP требуется HTTP-сервер, такой как Apache или Nginx, и необходимо настроить mod_php или php-cgi для обработки PHP-скриптов, тем самым создавая динамический контент. Иными словами, PHP зависит от внешнего HTTP-сервера для получения запросов и обслуживания веб-страниц.

Сам Node.js имеет встроенный модуль HTTP-сервера. Это означает, что при разработке на Node.js разработчики могут напрямую использовать HTTP-модуль Node.js для создания сервера, обработки HTTP-запросов и генерации веб-страниц. Таким образом, в Node.js логика веб-приложения и реализация HTTP-сервера тесно интегрированы, и разработчикам не нужно полагаться на внешнее программное обеспечение HTTP-сервера.

Прежде чем создавать наше первое приложение Node.js «Hello, World!», давайте сначала разберёмся, из каких частей состоит приложение Node.js:

  • директива require: В Node.js директива require используется для загрузки и импорта модулей. Импортируемые модули могут быть встроенными модулями, сторонними модулями или пользовательскими модулями.

  • Создание сервера:Сервер может прослушивать клиентские запросы, подобно HTTP-серверам, таким как Apache и Nginx.

  • Получение запросов и ответ на запросыСервер очень легко создать. Клиенты могут отправлять HTTP-запросы с помощью браузера или терминала, и после получения запроса сервер возвращает данные ответа.


Создание приложения Node.js

Шаг 1: Используйте директиву require для загрузки и импорта модулей

Синтаксис выглядит так:

const module = require('module-name');

Здесь module-name может быть путём к файлу (относительным или абсолютным) или именем модуля. Если это имя модуля, Node.js автоматически найдёт модуль в каталоге node_modules.

Директива require возвращает экспортированный объект загруженного модуля, через который можно получить доступ к свойствам и методам, определённым в модуле. Если модуль имеет несколько экспортированных объектов, можно использовать деструктурирующее присваивание, чтобы получить их.

Мы используемrequireдирективу для загрузки модуля http и присваиваем созданный экземпляр HTTP переменной http, как показано в примере ниже:

var http = require("http");

Шаг 2: Создайте сервер

Далее мы используем метод http.createServer() для создания сервера и метод listen для привязки к порту 8888. Функция получает данные и отвечает на них через параметры request и response.

Вот пример. Создайте файл с именем server.js в корневом каталоге вашего проекта и напишите следующий код:

Пример

var http = require('http');

http.createServer(function (request, response) {

        // Отправить HTTP-заголовок
        // Значение статуса HTTP: 200 : OK
        // Тип содержимого: text/plain
        response.writeHead(200, {'Content-Type': 'text/plain'});

        // Отправить данные ответа "Hello World"
        response.end('Hello World\n');
}).listen(8888);

// Терминал выводит следующую информацию
console.log('Server running at http://127.0.0.1:8888/');

С помощью приведённого выше кода мы завершили создание работающего HTTP-сервера.

Используйтеnode-команду, чтобы выполнить приведённый выше код:

node server.js
Server running at http://127.0.0.1:8888/

Затем откройте браузер и перейдите по адресу http://127.0.0.1:8888/. Вы увидите веб-страницу с "Hello World".

Разберём HTTP-сервер Node.js:

  • const http = require('http');: Импортировать встроенный модуль Node.jshttpмодуль.
  • http.createServer((req, res) => { ... });: Создать новый HTTP-сервер, который выполняет функцию обратного вызова при каждом запросе.
  • res.writeHead(200, { 'Content-Type': 'text/plain' });: Установить код состояния ответа и тип содержимого.
  • res.end('Hello World\n');: Завершить ответ и отправить данные.
  • server.listen(PORT, () => { ... });: Прослушивать указанный порт и выводить информацию после запуска сервера.

Демонстрация примера в GIF

Далее мы продемонстрируем пример выполнения с помощью GIF:

Другие расширения