Что такое Node.js
Тема дорожной карты · Node.js
Node.js — это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, которая запускает JavaScript-код вне браузера, позволяя разработчикам использовать JavaScript для серверной разработки: построения HTTP API, инструментов командной строки, приложений реального времени и микросервисов. Node.js был создан Райаном Далем в 2009 году путём встраивания движка V8 от Google в программу на C++ вместе с событийно-управляемой библиотекой неблокирующего I/O (libuv), что позволило создать среду выполнения, обрабатывающую десятки тысяч одновременных соединений при минимальном потреблении памяти по сравнению с моделями серверов, использующих отдельный поток на каждый запрос. Отличительная черта Node.js — однопоточный цикл событий (event loop): вместо блокировки на операциях ввода-вывода, таких как запросы к базе данных или чтение файлов, Node.js регистрирует колбэк и продолжает обработку других событий, достигая высокой конкурентности без сложности многопоточного программирования. Реестр npm, входящий в поставку Node.js, предоставляет доступ к более чем двум миллионам пакетов: от HTTP-фреймворков и драйверов баз данных до компиляторов TypeScript и тест-раннеров, что делает Node.js крупнейшей экосистемой программного обеспечения в мире. Node.js лежит в основе огромной доли современной серверной разработки, и понимание того, что такое Node.js — его модели выполнения, системы модулей и стандартной библиотеки — является отправной точкой для любой серверной работы на JavaScript и TypeScript.
Как это работает
Что такое Node.js запускает JavaScript вне браузера через V8 + libuv. V8 компилирует JS в машинный код; libuv даёт event loop, async I/O очередь и thread pool для блокирующих операций (fs, dns, crypto). Runtime однопоточный по исполнению JS, но использует non-blocking I/O — мало ядер CPU обслуживают много конкурентных соединений. Современные релизы — LTS (чётные, 30 месяцев поддержки) и Current (нечётные, 6 месяцев).
Когда применять
Берите Что такое Node.js для I/O-bound бэкендов (API, real-time, прокси), тулинга (build-шаги, CLI, codemods) и full-stack приложений с общими типами между сервером и клиентом. Пропустите для CPU-тяжёлой работы (обработка изображений, ML inference) без выноса в worker threads или нативные модули — однопоточный JS становится боттлнеком. В production всегда последний LTS.
Типичные ошибки
Ловушки Что такое Node.js: блокировка event loop синхронным кодом (один fs.readFileSync на горячем пути замораживает каждый запрос); console.log в production-горячих путях (медленнее, чем думают); закрепление на EOL Node-версии (security-дыры копятся); путаница CommonJS (require) и ESM (import) — у них тонкие различия в top-level await, расширениях файлов, динамической загрузке.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…