User:Sh.kuznetsov/sandbox
![]() | |
Original author(s) | Ryan Lienhart Dahl |
---|---|
Developer(s) | Node.js Developers |
Written in | C++, JavaScript |
Operating system | Mac OS X, Linux, Solaris, FreeBSD, OpenBSD, Windows (older versions require Cygwin), webOS |
Type | Event-driven networking |
License | MIT License |
Website | nodejs |
Node.js - падзейна-арыентаваная сэрверная платформа распрацоўкі праграм для сеціва. У якасці асноўнай мовы праграмавання выкарыстоўваецца JavaScript (але існуе пашырэнне, якое дазваляе распрацоўку на CoffeScript - спрошчанай мове праграмавання, якая аўтаматычна канвертуецца ў JavaScript). Зыходны код Node.js заснаваны на V8 JavaScript Engine - распрацаваным Google рухавіку JavaScript з адкрытым зыходным кодам, які выкарыстоўваецца у браўзэры Google Chrome.
Асноўныя адрозненні Node.js ад другіх распаусюджанных сэрверных моў (такіх як PHP, Perl і Ruby) Падзейна-арыентаванасць. Традыцыйны падыход заснаваны на існаванні толькі адной асноўнай падзеі -
Гэты падход значна спрашчае распрацоўку праграм накшталт сеткавых сервераў, у якіх
Распрацоўка Node.js пачалася ў 2009 годзе як персанальны некамерцыйны праект Раяна Даля (Ryan Dahl). Цяпер распрацоўка праекту спансуецца кампаніяй Joyent.
Прыклады
Рзалізацыя найпростага 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 сервер, які вяртае кліенту тэкст кожнага палучанага запыту:
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');
Супольнасць
[edit]Дзейнасць супольнасці распрацоўнікаў Node.js у асноўным сканцэнтравана вакол спісаў рассылкі nodejs і nodejs-dev, а таксама IRC каналу #node.js на freenode. Штогод супольнасць збіраецца на NodeConf, канферэнцыя распрацоўнікаў Node.js.[1]
Пашырэнні
[edit]Базавая функцыянальнасць Node.js можа быть пашырана з дапамогай падлучальных пакетаў. У склад дыстрыбутыву Node.js уваходзіць npm - мэнеджер пакетаў пашырэння, сістэма, якая спрашчае працэс спампавання і ўсталявання пакетаў, а таксама сочыць за іх ўзаемазалежнасцямі. Назва гэтай сістэмы, адпаведна яе аўтару, не з'яўляецца скарачэннем ад "Node.js Packet Manager".
Бібліятэка даступных для ўсталявання пакетаў завецца npm registrty і налічвае больш чым 9 тысячаў пакетаў. Бібліятэка адкрыта для дапаўнення.
- ^ NodeConf Schedule Announced, By Klint Finley, April 7, 2011, ReadWriteHack