Node или Node.js (читается: ноуд или ноуд-джей-эс) — программная платформа, основанная на движке V8 (компилирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API, написанный на C++, подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel, low.js и Espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.
История
В 1996 году в компании Netscape были попытки создания серверного JavaScript (Server-side JavaScript — SSJS)[6][7], однако технология не получила распространения.

Node.js разработал Райан Даль в 2009 году после двух лет экспериментирования над созданием серверных веб-компонентов. В ходе своих исследований он пришёл к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана из-за простоты, низких накладных расходов (по сравнению с идеологией «один поток на каждое соединение») и быстродействия. Целью Node является предложить «простой способ построения масштабируемых сетевых серверов».
Разработка Node.js спонсируется компанией Joyent.
В декабре 2014 года был создан форкio.js.
В мае 2015 года было принято решение о слиянии io.js и Node.js и дальнейшем развитии под эгидой Node.js Foundation[8].
8 сентября 2015 года вышел Node.js v4.0.0 как результат слияния Node.js v0.12.7 и io.js v3.3.0[9][10].
Важными событиями в развитии платформы стало появление Atomics и SharedArrayBuffer в Node.js 9, а также worker_threads в Node.js 10.5 (и существенное развитие в Node.js 12)[11]. Это позволило создавать многопоточные параллельные приложения, реализовывать примитивы параллельного программирования и работать с разделяемой памятью[12].
Версии
Примеры кода
Создание и запуск HTTP-сервера на Node.js, выдающего Hello, world!:
// Подключение модуля httpconst http = require("http");// Создаём веб-сервер с обработчиком запросовconst server = http.createServer((incomingMessage, response) => { console.log("Начало обработки запроса"); // Передаём код ответа и заголовки http response.writeHead(200, { "Content-Type": "text/plain; charset=UTF-8" }); response.end("Hello, world!");});// Запускаем веб-серверserver.listen(80, "127.0.0.1", () => { const info = server.address(); console.log(`Сервер запущен ${info}`);});Другой пример скрипта, создающего TCP-сервер, который прослушивает порт 8080 и выводит на экран всё, что вводит пользователь:
// Подключение модуля netconst net = require("net");// Создание TCP-сервераconst server = net.createServer((stream) => { // Установка кодировки stream.setEncoding("utf-8"); // Объявление обработчика событий stream.on("data", (data) => { // Вывод данных в консоль console.log(data); });});// Запуск сервераserver.listen(8080, "127.0.0.1");Пакеты сторонних разработчиков
В состав Node.js входит собственный менеджер пакетов npm, который предоставляет возможности установки, публикации и поиска пакетов из репозитория npmjs.com. Все зависимости находятся в папке node_modules.
Чтобы их использовать, сначала нужно инициализировать node js проект:
npm init Появятся файлы package.json и package-lock.json, в которых будет информация о проекте и зависимостях Установка производится при помощи команды:
npm install Все доступные для установки пакеты и их краткое описание:
npm search Этой же командой можно производить выборочный поиск пакетов.
Также можно установить все необходимые зависимости из файла package.json:
npm install См. также
Список библиотек, реализующих концепцию событийно-ориентированного программирования:
- Twisted — на языке Python
- EventMachine — на языке Ruby
- Secure Scuttlebutt — протокол одноранговых сетей и социальная сеть с ячеистой топологией, написанный на JavaScript с применением Node.js
Примечания
- ↑node-v0.x-archive on GitHub
- ↑nodejsRelease 2026-02-10, Version 25.6.1 (Current), @aduh95 (англ.)
- ↑nodejsRelease 2026-01-13, Version 24.13.0 'Krypton' (LTS), @marco-ippolito · nodejs/node (англ.)
- ↑ 123Free Software Directory
- ↑node/LICENSE at master · nodejs/node · GitHub
- ↑Server-Side JavaScript — Archive of obsolete content | MDN. Дата обращения: 4 июня 2016. Архивировано из оригинала 22 ноября 2018 года.
- ↑Серверный JavaScript 1.4. Руководство по Использованию. Дата обращения: 4 июня 2016. Архивировано 25 июня 2016 года.
- ↑io.js объединяется с NodeJS. Дата обращения: 10 сентября 2015. Архивировано 5 сентября 2015 года.
- ↑Node.js + Io.js = Node.js 4.0.0. Дата обращения: 10 сентября 2015. Архивировано 10 сентября 2015 года.
- ↑Вышла в свет новая версия Node.js v4.0.0. Дата обращения: 10 сентября 2015. Архивировано 10 сентября 2015 года.
- ↑Node.js: The Road to Workers by Anna Henningsen. Дата обращения: 7 сентября 2019. Архивировано 1 мая 2020 года.
- ↑Тимур Шемсединов. Разделяемая память в многопоточном Node.js. JS Fest 2019 Spring. Дата обращения: 7 сентября 2019. Архивировано 11 ноября 2020 года.
- ↑Releases. Node.js (23 августа 2023).
- ↑ 1234567891011nodejs/Release (англ.). GitHub. Дата обращения: 3 мая 2018. Архивировано 3 мая 2018 года.
- ↑Bringing forward the End-of-Life Date for Node.js 16, Node.js Website
- ↑ 12345678Node.JS CODENAMES.md (англ.). GitHub. Дата обращения: 6 сентября 2023.
- ↑Node.js — Node.js v25.0.0 (Current) (брит. англ.). nodejs.org. Дата обращения: 21 октября 2025.
Литература
- Брэд Дейли, Брендан Дейли, Калеб Дейли. Разработка веб-приложений с помощью Node.js, MongoDB и Angular: исчерпывающее руководство по использованию стека MEAN = Web Development with Node and Express. — 2-е изд.. — Санкт-Петербург: «Диалектика-Вильямс», 2020. — 656 с. — ISBN 978-5-6040044-8-7.
- Итан Браун. Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript = Web Development with Node and Express / Итан Браун. — Санкт-Петербург: Питер, 2017. — 336 с. — ISBN 978-1-491-94930-6.
- Каскиаро М., Маммино Л. Шаблоны проектирования Node.js. — 2017. — С. 396. — ISBN 978-5-97060-485-4.
- Сухов К. К. Node.js. Путеводитель по технологии. — «ДМК», 2015. — С. 416. — ISBN 978-5-97060-164-8.
- Холмс С. Стек MEAN. Mongo, Express, Angular, Node. — СПб.: «Питер», 2017. — С. 496. — ISBN 978-5-496-02459-4.
- Пауэрс Ш. Изучаем Node. Переходим на сторону сервера. — 2-е изд.. — СПб.: «Питер», 2017. — С. 304. — ISBN 978-5-496-02941-4.
- Янг А., Мек Б., Кантелон М. Node.js в действии. — 2-е изд.. — СПб.: «Питер», 2018. — С. 432. — ISBN 978-5-496-03212-4.