Node.js

**Node** կամ **Node.js**, ծրագրային պլատֆորմ՝ հիմնված V8 շարժիչի վրա (թարգմանում է ՋավաՍկրիպտը մեքենայական կոդի), ՋավաՍկրիպտը վերափոխում է նեղ մասնագիտական լեզվից լայն օգտագործման ծրագրավորման լեզվի։ Node.js-ը ՋավաՍկրիպտին ավելացնում է հնարավորություն համագործակցել մուտք-ելքային սարքերի հետ իր API-ի միջոցով (գրված է C++ լեզվով), միացնել ուրիշ արտաքին գրադարաններ, որոնք գրված են տարբեր լեզուներով, ստեղծելով կանչի հնարավորություն ՋավաՍկրիպտ կոդի միջոցով։ Node.js ունի լիիրավ դերակատարություն՝ որպես վեբ սերվեր։ Node.js-ի հիմքում միջոցառում-կողմորոշված է (Անգլ․ event-oriented) և ասինխրոն (կամ ռեակտիվ) ծրագրավորումը ոչ արգելափակվող մուտք/ելքով։

## Պատմություն
1996 թվականին Netscape կազմակերպությունում կատարվում են փորձեր ստեղծելու JavaScript-ի սերվերային մասը (Server-side JavaScript — SSJS), բայց այս տեխնոլոգիան տարածում չգտավ։

thumb|upright|Ռայն Դալը, Node.js-ի ստեղծողը
Երկու տարվա փորձարկումների արդյունքում 2009 թվականին Node.js-ը ստեղծվեց Ռայն Դալի-ի կողմից ()։ Իր հետազոտությունների ժամանակ նա եկավ այն եզրակացության, որ ավանդական զուգահեռականության մոդելի փոխարեն, որի հիմքում հոսքերն էին, պետք է դիեմել միջոցառում - կողմորոշված համակարգերին։ Այս մոդելը ընտրվեց իր պարզության, ցածր հոսքայնության (ի տարբերություն «մեկ հոսք մեկ միացման համար» գաղափարախոսության) և արագության։ Node-ի նպատակը «լայնածավալ ցանցային սերվերներ կառուցելու պարզ ուղին է»։

2014 թվականի դեկտեմբերին ստեղծվել է ֆորկ io.js։

2015 թվականի մայիսին ընդունվեց io.js ի և Node.js միաձուլման և հետագայում Node.js Foundation-ի հովանու ներքո զարգացման մասին որոշումը։

2015 թվականի սեպտեմբերի 8-ին թողարկվեց Node.js v4.0.0-ը որպես արդյունք Node.js v0.12.7 и io.js v3.3.0.-ի միաձուլման։

## Կոդի օրիանակներ
HTTP-սերվերի ստեղծում և գործարկում Node.js-ով, որը ցուցադրում է Hello, world!։

```javascript
// Բերնում ենք http մոդուլը
const http = require('http');

//Ստեղծեք վեբ սերվեր, հարցման մշակողով։
const server = http.createServer((req, res) => {
  console.log('Հարցման մշակման սկիզբ');
  // Փոխանցում ենք կոդի պատասխանը և http-վերնագրերը
  res.writeHead(200, {
    'Content-Type': 'text/plain; charset=UTF-8'
  });
  res.end('Բարև երկիր !');
});

//Աշխատացնում ենք վեբ սերվերը
server.listen(2002, '127.0.0.1', () => {
  console.log('Սերվերը աշխատում է  http://127.0.0.1:2002/');
});
```


Մեկ ուրիշ սցենարի օրինակ որում ստեղծվում է  TCP-սերվեր, որը լսում է  1337 ապաստանը և ցուցադրում է այն ամենը, ինչ օգտատերը մուտքագրել է։

```javascript
const net = require('net');

const server = net.createServer(stream => {
  stream.setEncoding('utf8');

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

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

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

server.listen(1337, 'localhost');
```


## Լրացուցիչ երրորդ կողմի փաթեթներ
Node.js կազմում է նաև npm սեփական փաթեթ տեղադրողը։ Տեղադրումը կատարվում է հետևյալ հրամանները միջոցով։

```bash
npm install <packagename>
```

Բոլոր հասանելի փաթեթները և դրանց կարճ նկարագրությունը։

```bash
npm search
```

Այս նույն հրամանով կարելի է կատարել փաթեթների ընտրովի որոնում։

## Ծանոթագրություններ

## Արտաքին հղումներ
* Node.js-ի դասընթաց
* Գուգլ խմբեր

Կատեգորիա:2010 մշակված ծրագրային ապահովում
Կատեգորիա:C++-ով գրված ազատ ծրագրային ապահովումներ
Կատեգորիա:JavaScript գրադարաններ
Կատեգորիա:Ծրագրային ապահովում այբբենական կարգով