Node.js

**Node.js** — bul Windows, Linux, Unix, macOS hám basqa da sistemalarda isley alatuǵın kross-platformalı, ashıq kodlı JavaScript orınlanıw ortalıǵı. Node.js V8 JavaScript dvijogında jumıs isleydi hám JavaScript kodın veb-brauzerden tıs orınlaydı.

Node.js baǵdarlamashılarǵa JavaScriptten paydalanıp, komanda qatarı quralların hám server táreptegi skriptlewdi jazıwǵa imkaniyat beredi. Serverde JavaScript kodın iske túsiriw imkaniyatı kóbinese bet paydalanıwshınıń veb-brauzerine jiberilmesten aldın dinamikalıq veb-bet kontentin jaratıw ushın qollanıladı. Nátiyjede, Node.js server hám klient táreptegi programmalastırıw ushın hár túrli tillerdi qollanıw ornına, veb-qosımshalardı islep shıǵıwdı bir programmalastırıw tili dógereginde birlestiretuǵın «JavaScript hámme jerde» paradigmasın kórsetedi.

Node.js asinxron kirgiziw/shıǵarıwǵa uqıplı, waqıyaǵa baǵdarlanǵan arxitekturaǵa iye. Bul dizayn sheshimleri kóplegen kirgiziw/shıǵarıw operaciyaları bar veb-qosımshalarda, sonday-aq real waqıtta isleytuǵın veb-qosımshalarda (mısalı, real waqıttaǵı baylanıs programmaları hám brauzer oyınları) ótkiziw qábiletin hám keńeytiw imkaniyatın optimallastırıwǵa baǵdarlanǵan.

Node.js-tiń bólistirilgen islep shıǵıw proekti aldın Node.js Fondı tárepinen basqarılǵan, al házir JS Fondı menen birlesip, OpenJS Fondın quradı. OpenJS Fondınıń jumısı Linux Fondınıń Birge islesiw Proektleri baǵdarlaması tárepinen ámelge asırıladı.

## Tariyxı

Node.js dáslep 2009-jılı Rayan Dal tárepinen jazılǵan, bul birinshi server táreptegi JavaScript ortalıǵı Netscape-tiń LiveWire Pro Web-inen shama menen 13 jıl ótkennen keyin boldı. Dáslepki reliz tek Linux hám Mac OS X sistemaların qollap-quwatladı. Onı islep shıǵıw hám qollap-quwatlawdı Dal basqardı, keyinirek Joyent kompaniyası qáwenderlik etti.

Dal Apache HTTP Serveriniń kóplegen (10 000+) bir waqıttaǵı baylanıslardı qayta islewdegi sheklengen imkaniyatların, sonday-aq qosımshalardıń pútin processlerdi bloklawı yamasa bir waqıttaǵı baylanıslar ushın bir neshe orınlanıw stekleriniń payda bolıwına sebep bolıwı múmkin bolǵan izbe-iz programmalastırıwdıń ústem paradigmasın sınǵa aldı.

Dal proektti 2009-jıl 8-noyabrde birinshi Evropa JSConf konferenciyasında kórsetti. Node.js Google-dıń V8 JavaScript dvijogın, waqıyalar ciklin hám tómen dárejeli kirgiziw/shıǵarıw (I/O) API-in birlestirdi.

2010-jıl yanvar ayında Node.js ortalıǵı ushın npm dep atalǵan paket menedjeri usınıldı. Paket menedjeri baǵdarlamashılarǵa Node.js paketlerin hám olarǵa qosımsha derek kodın járiyalawǵa hám bólisiwge imkaniyat beredi hám paketlerdi ornatıw, jańalaw hám óshiriwdi ápiwayılastırıwǵa arnalǵan.

2011-jıl iyun ayında Microsoft hám Joyent Node.js-tiń jergilikli Windows versiyasın ámelge asırdı. Windows-tı qollap-quwatlaytuǵın birinshi Node.js relizi 2011-jıl iyul ayında shıǵarıldı.

2012-jıl yanvar ayında Dal proekt basqarıwın npm jaratıwshısı Ayzek Shlyuterge tapsırdı. 2014-jıl yanvar ayında Shlyuter proektti Timoti Dj. Fonteyn basqaratuǵının járiyaladı.

2014-jıl dekabr ayında Fedor Indutnıy Joyent kompaniyasınıń basqarıwına narazılıq sebepli Node.js-tiń forki io.js-ti jarattı. Bul bólek texnikalıq komiteti bar ashıq basqarıw alternativası edi. Maqset jámiyetshiliktiń pikirlerin kóbirek qabıl etetuǵın strukturanı qáliplestiriw, sonıń ishinde io.js-ti Google V8 JavaScript dvijogınıń eń sońǵı relizleri menen jańalap turıw edi, bul sol waqıttaǵı Node.js-tiń usılınan ayırmashılıq etti.

Node.js hám io.js-ti bir bayraq astında birlestiriw ushın qurılǵan Node.js Fondı 2015-jıl fevral ayında járiyalandı. Birlesiw 2015-jıl sentyabr ayında Node.js v0.12 hám io.js v3.3 versiyalarınıń Node v4.0 ge birigiwi menen ámelge astı. Bul birlesiw V8 ES6 ózgesheliklerin Node.js-ke kirgizdi hám uzaq múddetli qollap-quwatlaw reliz ciklin basladı. 2016-jılǵa kelip, io.js veb-saytı Node.js-ke qaytıwdı usınıs etti hám io.js-tiń basqa relizleri shıqpaytuǵının járiyaladı, bul fork processin nátiyjeli juwmaqlap, birlesiwdiń tabısın bekkemledi.

2019-jılı JS Fondı hám Node.js Fondı birlesip, OpenJS Fondın quradı.

### Brendlew
Node.js logotibi orınlaw ortalıǵınıń kross-platformalı tábiyatın súwretlewshi, bir-birin basıp ótetuǵın sızıqları bar jasıl altı múyeshlikten ibarat. Rocket Turtle dizayn tańlawınan keyin 2024-jıl fevral ayında Node.js-tiń rásmiy tumarı retinde tańlandı.

## Sholıw
Node.js JavaScript hám hár túrli tiykarǵı funkcional imkaniyatlardı basqaratuǵın «moduller» toplamın paydalanıp, veb-serverler hám tarmaq quralların jaratıwǵa imkaniyat beredi. Fayl sisteması kirgiziw/shıǵarıw, tarmaq (DNS, HTTP, TCP, TLS/SSL yamasa UDP), ekilik maǵlıwmatlar (buferler), kriptografiya funkciyaları, maǵlıwmatlar aǵımları hám basqa tiykarǵı funkciyalar ushın moduller usınılǵan. Node.js modulleri server qosımshaların jazıw quramalılıǵın azaytıwǵa arnalǵan API-di paydalanadı.

JavaScript - Node.js tábiyiy túrde qollap-quwatlaytuǵın jalǵız til, biraq JS-ke kompilyaciya etiletuǵın kóplegen tiller bar. Nátiyjede, Node.js qosımshaları CoffeeScript, Dart, TypeScript, ClojureScript hám basqa tillerde de jazılıwı múmkin.

Node.js tiykarınan veb-serverler sıyaqlı tarmaq programmaların qurıw ushın qollanıladı. Node.js hám PHP arasındaǵı eń áhmiyetli ayırmashılıq - PHP-degi kópshilik funkciyalar tamamlanǵanǵa shekem bloklanadı (buyrıqlar tek aldınǵı buyrıqlar tamamlanǵannan keyin orınlanadı), al Node.js funkciyaları bloklamaydı (buyrıqlar bir waqıtta orınlanadı hám tamamlanǵanın yamasa sátsizlikke ushıraǵanın bildiriw ushın keri shaqırıwlardı paydalanadı).

Node.js rásmiy túrde Linux, macOS hám Microsoft Windows 8.1 hám Server 2012 (hám onnan keyingiler) tárepinen qollap-quwatlanadı, SmartOS hám IBM AIX ushın 2-dárejeli qollap-quwatlaw hám FreeBSD ushın eksperimental qollap-quwatlaw bar. OpenBSD de isley aladı, al LTS versiyaları IBM i (AS/400) ushın bar. Derek kodın sonday-aq NonStop OS hám Unix serverleri sıyaqlı rásmiy túrde qollap-quwatlanbaytuǵın uqsas operaciyalıq sistemalarda da qurıw múmkin.

### Platforma arxitekturası
Node.js waqıyaǵa baǵdarlanǵan programmalastırıwdı paydalanıp, JavaScriptte tez isleytuǵın veb-serverlerdi islep shıǵıwǵa imkaniyat beredi. Baǵdarlamashılar wazıypanıń tamamlanǵanın bildiriw ushın keri shaqırıwlardı paydalanatuǵın ápiwayılastırılǵan model arqalı aǵımlar arqalı islewdi qollanbastan, keńeytiw imkaniyatına iye serverlerdi jarata aladı. Node.js skriptlew tiliniń (JavaScript) ańsatlıǵın Unix tarmaq programmalastırıwınıń kúshi menen birlestiredi.

Node.js Google-dıń V8 JavaScript dvijogı tiykarında qurılǵan, sebebi ol BSD licenziyası boyınsha ashıq kodlı edi hám HTTP, DNS hám TCP sıyaqlı tiykarǵı protokollardı keń qamtıwshı qollap-quwatlawǵa iye edi. JavaScripttiń bar ataqlılıǵı Node.js-ti veb-baǵdarlamalastırıw jámiyetshiligi ushın qoljetimli etti.

### Sanaat tárepinen qollap-quwatlanıwı
Node.js ushın mıńlaǵan ashıq kodlı kitapxanalar bar, olardıń kópshiligi npm veb-saytında jaylasqan. Node.js jámiyetin qollap-quwatlaytuǵın bir neshe baǵdarlamashılar konferenciyaları hám ilajları ótkeriledi, sonıń ishinde NodeConf, Node Interactive hám Node Summit, sonday-aq bir qatar regionallıq ilajlar bar.

Ashıq kodlı jámiyetshilik qosımshalardı islep shıǵıwdı tezletiw ushın veb-freymvorklar jarattı. Bunday freymvorklarǵa Express.js, Socket.IO, Sails.js, Next.js hám Meteor kiredi. Microsoft .NET sıyaqlı basqa tiller yamasa orınlaw ortalıqları menen baylanısıw ushın da hár túrli paketler jaratılǵan.

Zamanagóy desktop IDE-leri Node.js qosımshaları ushın arnawlı redaktorlaw hám sazlaw imkaniyatların usınadı. Bunday IDE-lerge Atom, Brackets, JetBrains WebStorm, Microsoft Visual Studio (Node.js Tools for Visual Studio menen, yamasa Node anıqlamaları bar TypeScript penen), NetBeans, Nodeclipse Enide Studio (Eclipse tiykarında) hám Visual Studio Code kiredi. Ayırım onlayn IDE-ler de Node.js-ti qollap-quwatlaydı, mısalı, Codeanywhere, Eclipse Che, Cloud9 IDE hám Node-RED-tegi vizual aǵım redaktorı.

Node.js Jelastic, Google Cloud Platform, AWS Elastic Beanstalk, Azure Web Apps hám Joyent sıyaqlı bir qatar bultlı xosting platformalarında qollap-quwatlanadı.

## Derekler

__BÖLİDİMÖNDEMEW__