Node.js: С чего начать создание серверных приложений на JavaScript?
Введение
Node.js — это среда выполнения JavaScript, построенная на движке V8 от Google. Ее ключевая особенность — событийно-ориентированная, неблокирующая I/O модель, что делает ее легкой и эффективной для создания масштабируемых сетевых приложений. Проще говоря, вы можете писать серверный код на знакомом JavaScript.
Основные концепции:
-
Асинхронность: Вместо ожидания завершения операции (например, чтения файла), Node.js продолжает выполнять другой код. Когда операция завершается, вызывается функция обратного вызова (callback).
-
NPM (Node Package Manager): Огромная экосистема библиотек и инструментов, которые легко подключать в свои проекты.
-
Модульность: Код организуется в модули, которые можно импортировать с помощью
require().
Пример: Простой HTTP-сервер
Давайте создадим самый простой веб-сервер, который возвращает «Hello, World!» на любой запрос.
-
Установка Node.js: Скачайте и установите Node.js с официального сайта.
-
Создание проекта:
mkdir my-first-server
cd my-first-server
npm init -y # Создает файл package.json с настройками по умолчанию
3. Создание файла app.js:
// Подключаем встроенный модуль ‘http’
const http = require(‘http’);// Определяем порт, на котором будет работать сервер
const port = 3000;// Создаем HTTP-сервер
const server = http.createServer((req, res) => {
// req (request) — объект запроса от клиента
// res (response) — объект ответа сервера// Устанавливаем заголовок ответа (HTTP статус 200 и тип контента)
res.writeHead(200, { ‘Content-Type’: ‘text/plain’ });// Отправляем данные в ответе
res.end(‘Hello, World from Node.js Server!\n’);
});// Запускаем сервер и слушаем указанный порт
server.listen(port, () => {
console.log(`Server is running at http://localhost:${port}/`);
});
4. Запуск сервера:
node app.js
-
Вы увидите сообщение в консоли:
Server is running at http://localhost:3000/. -
Проверка: Откройте браузер и перейдите по адресу
http://localhost:3000. Вы увидите текст «Hello, World from Node.js Server!».
Описание кода:
-
require('http')импортирует встроенный модуль для работы с HTTP. -
http.createServer()создает новый экземпляр сервера. Функция, переданная в него, будет выполняться при каждом запросе. -
res.writeHead()устанавливает статус код и заголовки ответа. -
res.end()завершает формирование ответа и отправляет его клиенту. -
server.listen()заставляет сервер «слушать» входящие подключения на указанном порту.
Заключение
Это базовый пример, но он демонстрирует мощь Node.js: несколькими строками кода мы создали работающий веб-сервер. Дальше можно подключать фреймворки (например, Express.js), работать с базами данных и создавать полноценные API.

