Лучшие вопросы
Таймлайн
Чат
Перспективы

Node.js

серверный JavaScript-фреймворк Из Википедии, свободной энциклопедии

Node.js
Remove ads

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 лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

Краткие факты Тип, Разработчики ...
Remove ads

История

Суммиров вкратце
Перспектива

В 1996 году в компании Netscape были попытки создания серверного JavaScript (Server-side JavaScript — SSJS)[5][6], однако технология не получила распространения.

Thumb
Райан Даль, создатель Node.js

Node.js разработал Райан Даль в 2009 году после двух лет экспериментирования над созданием серверных веб-компонентов. В ходе своих исследований он пришёл к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана из-за простоты, низких накладных расходов (по сравнению с идеологией «один поток на каждое соединение») и быстродействия. Целью Node является предложить «простой способ построения масштабируемых сетевых серверов».

Разработка Node.js спонсируется компанией Joyent.

В декабре 2014 года был создан форк io.js.

В мае 2015 года было принято решение о слиянии io.js и Node.js и дальнейшем развитии под эгидой Node.js Foundation[7].

8 сентября 2015 года вышел Node.js v4.0.0 как результат слияния Node.js v0.12.7 и io.js v3.3.0[8][9].

Важными событиями в развитии платформы стало появление Atomics и SharedArrayBuffer в Node.js 9, а также worker_threads в Node.js 10.5 (и существенное развитие в Node.js 12)[10]. Это позволило создавать многопоточные параллельные приложения, реализовывать примитивы параллельного программирования и работать с разделяемой памятью[11].

Версии

Подробнее Версия, Статус ...

Примеры кода

Создание и запуск 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

См. также

Список библиотек, реализующих концепцию событийно-ориентированного программирования:

  • Twisted — на языке Python
  • EventMachine — на языке Ruby
  • Secure Scuttlebutt — протокол одноранговых сетей и социальная сеть с ячеистой топологией, написанный на JavaScript с применением Node.js

Примечания

Литература

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads