Prog Academy
RU UA
Веб-разработка

Что такое Node.js?

Node.js — среда выполнения, которая позволяет запускать JavaScript вне браузера, на сервере. Благодаря ей на одном языке можно писать и клиентскую, и серверную часть приложения.

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

Вместе с Node.js идёт npm — крупнейший в мире реестр пакетов. Для веб-сервисов чаще всего используют фреймворки Express, Fastify или NestJS.

Где применяется

На Node.js пишут API для веб- и мобильных приложений, чаты и сервисы реального времени, шлюзы между внешними сервисами, обработчики вебхуков и телеграм-ботов. Для веб-части чаще всего берут Express или NestJS, данные хранят в PostgreSQL или MongoDB.

Вторая, менее заметная роль — инструментальная. Node.js стоит под капотом почти всей фронтенд-разработки: сборщики, линтеры, локальные серверы разработки, генераторы статических сайтов запускаются именно в нём. Поэтому с Node сталкивается даже тот, кто не пишет на нём серверный код.

Пример

Сервис принимает вебхуки от платёжной системы: сотни запросов в минуту, каждый требует записи в базу. Node.js обрабатывает их в одном процессе, не блокируясь на ожидании базы, — а тяжёлую генерацию отчётов выносят в отдельную очередь, чтобы не занимать основной поток.

import express from 'express';

const app = express();

app.get('/api/orders/:id', async (req, res) => {
  const order = await db.orders.findById(req.params.id);
  if (!order) return res.status(404).json({ error: 'not found' });
  res.json(order);
});

app.listen(3000);
Минимальный HTTP-сервис на Express: маршрут, асинхронный запрос к базе и ответ в формате JSON.

Частые вопросы

Node.js — это язык программирования?

Нет, это среда выполнения JavaScript вне браузера. Язык остаётся тем же, меняется окружение: вместо работы со страницей появляется доступ к файловой системе, сети и процессам операционной системы. Отсюда и возможность писать на JavaScript серверный код.

Для каких задач Node.js подходит плохо?

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

Что такое npm и зачем он нужен?

Это менеджер пакетов, который ставится вместе с Node.js, и крупнейший в мире реестр библиотек. Через него подключают зависимости, фиксируют их версии в package-lock и запускают команды проекта — сборку, тесты, локальный сервер разработки.

Стоит ли изучать Node.js фронтендеру?

Да, и это самый короткий путь к полному стеку: язык уже знаком, учить нужно только серверную специфику и работу с базой. Даже без перехода на бэкенд понимание Node помогает разбираться со сборкой проекта и настройкой окружения разработки.

Подробная статья в блоге →

Связанные термины