Введение в Node.js
Тема дорожной карты · Node.js
Node.js — это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, построенная на движке V8, которая позволяет разработчикам выполнять JavaScript на стороне сервера, обеспечивая полностековую разработку на одном языке. Node.js использует неблокирующую, событийно-управляемую модель I/O, что делает её высокоэффективной для построения масштабируемых сетевых приложений, REST API и сервисов реального времени, где конкурентность важнее чистой вычислительной мощности. Среда выполнения Node.js поставляется с богатой стандартной библиотекой, включающей модули для доступа к файловой системе (fs), HTTP-серверов (http/https), криптографии (crypto) и потоков, а экосистема npm содержит более двух миллионов пакетов, ускоряющих серверную разработку. TypeScript стал доминирующим языком для продакшн-приложений на Node.js, добавляя статическую типизацию и безопасность на этапе компиляции к среде выполнения JavaScript без изменения характеристик её работы. Понимание основ Node.js — цикла событий, системы модулей и модели асинхронного программирования — является фундаментом всей серверной разработки на платформе Node.js.
Как это работает
Введение в 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)
Загрузка вопросов…