Node.js — падзейна-арыентаваная серверная платформа распрацоўкі праграм для сеціва. У якасці мовы праграмавання выкарыстоўваецца JavaScript (існуе пашырэнне, якое дазваляе распрацоўку на CoffeScript — спрошчанай мове праграмавання, якая аўтаматычна канвертуецца ў JavaScript)[4]. Зыходны код Node.js заснаваны на V8 JavaScript Engine — распрацаваным Google рухавіку JavaScript з адкрытым зыходным кодам, які выкарыстоўваецца ў браўзеры Google Chrome.[5]
Распрацоўка Node.js пачалася ў 2009 годзе як персанальны некамерцыйны праект Раяна Даля (Ryan Dahl). Цяпер распрацоўка праекту спансуецца кампаніяй Joyent.[6]
Node.js выкарыстоўваюць такія карпарацыі, як GoDaddy, Groupon, IBM, LinkedIn, Microsoft, Netflix, PayPal, Rakuten, SAP, Tuenti, Voxer, Walmart, Yahoo! and Cisco Systems.
Рзалізацыя найпрасцейшага HTTP-серверу на Node.js, які адказвае тэкстам “Hello World” на кожны запыт:
var http = require('http');
http.createServer(function (req, res) \{
res.writeHead(200, \{'Content-Type': 'text/plain'\});
res.end('Hello World\n');
\}).listen(1337, '127.0.0.1');
console.log('Server running at <http://127.0.0.1:1337/'>);
Каб запусціць сзрвер дастаткова захаваць гэты код у файл (напрыклад example.js) і выканаць у камандным радку каманду накшталт:
% node.js example.js
Другі вядомы прыклад — TCP сэpвер, які вяртае кліенту тэкст кожнага атрыманага запыту:
var net = require('net');
var server = net.createServer(function (socket) \{
socket.write('Echo server\r\n');
socket.pipe(socket);
\});
server.listen(1337, '127.0.0.1');
Дзейнасць супольнасці распрацоўшчыкаў Node.js у асноўным сканцэнтравана вакол спісаў рассылкі nodejs і nodejs-dev, а таксама IRC каналу #node.js на freenode. Штогод супольнасць збіраецца на NodeConf — канферэнцыю распрацоўшчыкаў Node.js.[7]
Базавая функцыянальнасць Node.js можа быть пашырана з дапамогай падлучальных пакетаў. У склад дыстрыбутыву Node.js уваходзіць npm — менеджер пакетаў пашырэння, сістэма, якая спрошчваае працэс пампавання і ўсталявання пакетаў, а таксама сочыць за іх узаемазалежнасцямі.[8] Назва гэтай сістэмы, адпаведна яе аўтару, не з’яўляецца скарачэннем “Node.js Packet Manager”.[9]
Бібліятэка даступных для ўсталявання пакетаў называецца npm registrty Архівавана 30 ліпеня 2012. і налічвае больш чым 9 тысяч пакетаў.[10] Бібліятэка адкрыта для дапаўнення.