Что такое Node.js: JavaScript вне браузера
Что такое Node.js, на чём он работает и зачем выносить JavaScript из браузера на сервер.
Node.js — это среда выполнения JavaScript вне браузера, построенная на движке V8 от Google Chrome. Она позволяет писать на JavaScript серверный код, утилиты и инструменты.
JavaScript раньше жил только в браузере
Долгое время JavaScript был языком исключительно браузера: он оживлял страницы, обрабатывал клики, менял DOM. Запустить JS-файл «просто так», как Python-скрипт, было нельзя — нужен был браузер с его окружением.
В 2009 году Райан Даль взял движок V8 (тот самый, что исполняет JavaScript в Chrome), добавил к нему доступ к файлам, сети и операционной системе — и получилась Node.js. Теперь один и тот же язык работает и на клиенте, и на сервере.
Что такое движок V8 и зачем он нужен
V8 — это программа, которая читает ваш JavaScript и превращает его в машинный код, понятный процессору. Он очень быстрый: компилирует код «на лету» (JIT-компиляция). Node.js берёт этот движок и оборачивает его в набор библиотек для работы с системой.
Проще говоря: V8 умеет считать JavaScript, а Node.js даёт ему руки — возможность читать файлы, отвечать на сетевые запросы, запускать процессы.
| Браузер | Node.js |
есть window, document, DOM | нет DOM, есть process, fs, http |
| работает со страницей | работает с файлами и сетью |
| код пишет фронтенд | код пишет бэкенд и утилиты |
Где применяется Node.js
Node.js хорошо подходит для задач, где много операций ввода-вывода (запросы, файлы, сеть) и сравнительно мало тяжёлых вычислений:
- Веб-серверы и REST API — самый частый сценарий (Express, NestJS, Fastify).
- Инструменты разработчика — сборщики (Webpack, Vite), линтеры (ESLint), форматтеры (Prettier) написаны на Node.
- Чаты и реальное время — WebSocket-сервера, онлайн-игры, уведомления.
- Скрипты и автоматизация — обработка файлов, парсинг, миграции.
Один язык на весь стек
Главное практическое преимущество — единый язык. Команда может писать и фронтенд, и бэкенд на JavaScript, переиспользовать код (например, валидацию данных), и не переключаться между разными языками. Вокруг Node вырос огромный мир пакетов — реестр npm содержит более двух миллионов модулей.
Чистая JavaScript-логика работает в Node так же, как в браузере. Например, обычные операции с массивами:
const prices = [120, 80, 200, 50];
const total = prices.reduce((sum, p) => sum + p, 0);
console.log("Сумма заказа:", total);
console.log("Самый дорогой товар:", Math.max(...prices));
Вывод:
Сумма заказа: 450 Самый дорогой товар: 200
Этот код одинаково отработает и в браузере, и в Node — он не зависит ни от DOM, ни от файловой системы.
Итог
- Node.js — это среда выполнения JavaScript вне браузера на движке V8.
- V8 исполняет JS, а Node даёт доступ к файлам, сети и системе.
- Применяется для серверов, API, инструментов разработки и автоматизации.
- Один язык на клиенте и сервере + гигантская экосистема npm.