Compute Node Linux
- 1 year ago
- 0
- 0
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) , однако технология не получила распространения.
Node.js разработал Райан Даль в 2009 году после двух лет экспериментирования над созданием серверных веб-компонентов. В ходе своих исследований он пришёл к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана из-за простоты, низких накладных расходов (по сравнению с идеологией «один поток на каждое соединение») и быстродействия. Целью Node является предложить «простой способ построения масштабируемых сетевых серверов».
Разработка Node.js спонсируется компанией .
В декабре 2014 года был создан форк io.js .
В мае 2015 года было принято решение о слиянии io.js и Node.js и дальнейшем развитии под эгидой Node.js Foundation .
8 сентября 2015 года вышел Node.js v4.0.0 как результат слияния Node.js v0.12.7 и io.js v3.3.0 .
Важными событиями в развитии платформы стало появление и в Node.js 9, а также в Node.js 10.5 (и существенное развитие в Node.js 12) . Это позволило создавать многопоточные параллельные приложения, реализовывать примитивы параллельного программирования и работать с разделяемой памятью .
Версия | Статус | Кодовое имя | Дата выпуска | Поддержка до |
---|---|---|---|---|
0.10.x | End-of-Life | 2013-03-11 | 2016-10-31 | |
0.12.x | End-of-Life | 2015-02-06 | 2016-12-31 | |
4.x | End-of-Life | Argon | 2015-09-08 | 2018-04-30 |
5.x | End-of-Life | 2015-10-29 | 2016-06-30 | |
6.x | End-of-Life | Boron | 2016-04-26 | 2019-04-30 |
7.x | End-of-Life | 2016-10-25 | 2017-06-30 | |
8.x | End-of-Life | Carbon | 2017-05-30 | 2019-12-31 |
9.x | End-of-Life | 2017-10-01 | 2018-06-30 | |
10.x | End-of-Life | Dubnium | 2018-04-24 | 2021-04-30 |
11.x | End-of-Life | 2018-10-23 | 2019-06-01 | |
12.x | End-of-Life | Erbium | 2019-04-23 | 2022-04-30 |
13.x | End-of-Life | 2019-10-22 | 2020-06-01 | |
14.x | End-of-Life | Fermium | 2020-04-21 | 2023-04-30 |
15.x | End of Life | 2020-10-20 | 2021-06-01 | |
16.x | End-of-Life | Gallium | 2021-04-20 | 2023-09-11 |
17.x | End-of-Life | 2021-10-19 | 2022-06-01 | |
18.x | Maintenance LTS | Hydrogen | 2022-04-19 | 2025-04-30 |
19.x | End-of-Life | 2022-10-18 | 2023-06-01 | |
20.x | Active LTS | Iron | 2023-04-18 | 2026-04-30 |
21.x | Current | 2023-10-17 | 2024-05-30 | |
22.x | Planned | Jod | 2024-04-15 | 2027-04-28 |
23.x | Planned | 2024-10-14 | 2025-05-27 | |
24.x | Planned | 2025-04-22 | 2028-04-30 | |
Легенда:
Старая версия, не поддерживается
Старая поддерживаемая версия
Текущая версия
Будущая версия
|
Создание и запуск HTTP -сервера на Node.js, выдающего Hello, world! :
// Подключение модуля http
const 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 и выводит на экран всё, что вводит пользователь:
// Подключение модуля net
const 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 <packagename>
Все доступные для установки пакеты и их краткое описание:
npm search
Этой же командой можно производить выборочный поиск пакетов.
Также можно установить все необходимые зависимости из файла package.json
npm install
Список библиотек, реализующих концепцию событийно-ориентированного программирования: