Node.js

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Nodejs»)
Перейти к: навигация, поиск
Node.js
Node.js logo.svg
Тип

событийно-ориентированный язык программирования[d]

Автор

Ryan Lienhart Dahl

Разработчик

Node.js Developers

Написана на

C++, JavaScript и C

Операционная система

macOS, GNU/Linux[d], Solaris, FreeBSD, OpenBSD, Open webOS и Windows

Первый выпуск

27 мая 2009[1]

Последняя версия
Состояние

активное

Лицензия

лицензия X11[d][4]

Сайт

nodejs.org[5]

Commons-logo.svg Node.js на Викискладе

Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и Mac OS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

История[править | править вики-текст]

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

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

Node.js разработал Райан Даль (англ. Ryan Dahl) в 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]

Примеры кода[править | править вики-текст]

Создание и запуск HTTP-сервера на Node.js, выдающего Hello, world!:

// Загружаем модуль http
var http = require('http');

// Создаем web-сервер с обработчиком запросов
var server = http.createServer(function (req, res) {
    console.log('Начало обработки запроса');
    // Передаем код ответа и http-заголовки
    res.writeHead(200, {
        'Content-Type': 'text/plain; charset=UTF-8'
    });
    res.end('Hello world!');
});

// Запускаем web-сервер
server.listen(2002, "127.0.0.1", function () {
    console.log('Сервер запущен http://127.0.0.1:2002/');
});

Другой пример скрипта, создающего TCP-сервер, который прослушивает порт 1337 и выводит на экран всё, что вводит пользователь:

var net = require('net');

var server = net.createServer(function (stream) {
    stream.setEncoding('utf8');

    stream.write('hello\r\n');

    stream.addListener('data', function (data) {
        this.write(data);
    });

    stream.addListener('end', function () {
        this.write('goodbye\r\n');
        this.end();
    });
});

server.listen(1337, 'localhost');

Дополнительные пакеты сторонних разработчиков[править | править вики-текст]

В состав Node.js входит собственный установщик пакетов npm. Установка производится при помощи команды:

npm install <packagename>

Все доступные для установки пакеты и их краткое описание:

npm search

Этой же командой можно производить выборочный поиск пакетов.

Nide[править | править вики-текст]

Nide.png

Релиз проекта Nide был представлен 16 января 2012 года, в его рамках развивается интегрированная среда разработки приложений для платформы Node.js. IDE Nide построена с использованием веб-технологий и может быть запущена как локальное приложение или как удалённый сервис, работающий через веб-браузер. В комплект также входит утилита nide, позволяющая выполнять типовые действия над проектами и NPM-пакетами из командной строки.

Код проекта распространяется под лицензией MIT. Nide может быть запущен на любых платформах, на которых работает Node.js, однако сборка с обособленным приложением пока доступна только для Mac OS X[11].

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]

Литература[править | править вики-текст]

  • Итан Браун. Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript = Web Development with Node and Express / Итан Браун. — Санкт-Петербург: Питер, 2017. — 336 с. — ISBN 978-1-491-94930-6.