hostprofi.ru
Подобрать хостинг
Термин·буква N

Node.js

краткое определение

Node.js — среда выполнения JavaScript на стороне сервера на движке V8 (Chrome). Использует неблокирующую event-driven архитектуру, что делает её эффективной для I/O-интенсивных задач: API-серверов, real-time приложений, стриминга.

Node.js — открытая кросс-платформенная среда выполнения JavaScript вне браузера, созданная Райаном Далем в 2009 году. Основана на движке V8 от Google. Использует однопоточную событийно-ориентированную модель с неблокирующим I/O, что позволяет обрабатывать тысячи одновременных соединений без создания отдельного потока на каждое.

Архитектура Event Loop

Node.js работает в одном потоке через Event Loop. Когда операция I/O (чтение файла, запрос к БД, HTTP-запрос) инициируется, Node.js не блокирует поток, а регистрирует колбэк и продолжает обработку других событий. По завершении I/O вызывается колбэк. Это отличается от Apache + PHP-FPM, где каждый запрос обслуживает отдельный процесс.

Для CPU-интенсивных задач Event Loop неэффективен — они блокируют обработку других запросов. Решение: Worker Threads (Node.js 10.5+) или дочерние процессы.

Экосистема npm

npm (Node Package Manager) — крупнейший в мире реестр пакетов с 2 миллионами пакетов (2024). Управление зависимостями через package.json. Yarn и pnpm — альтернативные менеджеры пакетов.

История

Node.js создан Райаном Далем в 2009 году, первый релиз — ноябрь 2009 года. В 2010 году появился npm. В 2015 году Node.js Foundation и io.js (форк) объединились. С 2015 года выходят LTS-релизы с 30-месячной поддержкой. Node.js 18 LTS (2022) и 20 LTS (2023) — актуальные версии. В 2024 году Node.js 22 вышел стабильным.

Связь с хостингом

Node.js-приложения требуют VDS или выделенного сервера — виртуальный хостинг редко поддерживает долгоживущие процессы. За Nginx-прокси: порт 3000/8080 → Node.js-процесс. PM2 — менеджер процессов: автоматический перезапуск, кластеризация, логирование. Для деплоя используют Docker или serverless-платформы (Vercel, Netlify).

Как работает Node.js

Node.js построен на движке V8 (Google Chrome), компилирующем JavaScript в машинный код. Event loop -- сердце Node.js: один поток обрабатывает множество соединений благодаря неблокирующему I/O. Пример: Node.js ждёт ответ от БД асинхронно, обрабатывая другие запросы, -- вместо того чтобы блокировать поток. libuv -- C-библиотека, реализующая event loop и thread pool (для blocking operations вроде файловой системы). Worker Threads (Node.js 12+) позволяют использовать несколько CPU-потоков для вычислительных задач. Типичные фреймворки: Express.js (минималистичный), Fastify (быстрее Express в 2x), NestJS (структурированный, TypeScript-first).

Деплой Node.js на VPS

Установка через nvm (Node Version Manager): nvm install 20 (LTS 2024). Управление процессами через PM2: pm2 start app.js --name api --watch. Nginx как reverse proxy: proxy_pass http://localhost:3000. Docker Compose упрощает деплой: node:20-alpine образ, docker-compose up -d. Для хостинга Node.js подходят VPS от 1 ГБ RAM. Переменные окружения через .env файл и библиотеку dotenv. Redis используется для сессий и очередей задач. LTS-версии Node.js поддерживаются 30 месяцев -- следите за EOL на nodejs.org/releases.

История Node.js

Node.js создал Райан Даль в 2009 году, представив на конференции JSConf EU. npm основан Айзеком Шлютером в 2010 году. В 2014 году возник форк io.js из-за разногласий с Joyent (тогдашним спонсором). В 2015 году io.js воссоединился с Node.js под управлением Node.js Foundation (ныне OpenJS Foundation). Node.js 12 (2019) добавил Worker Threads и ES Modules. Node.js 20 (2023) -- Text test runner и стабильные ES Modules.

Другие термины