Tika izlaists Node.js 16.0 ā platforma tÄ«kla lietojumprogrammu palaiÅ”anai JavaScript. Node.js 16.0 ir klasificÄts kÄ ilgtermiÅa atbalsta filiÄle, taÄu Å”is statuss tiks pieŔķirts tikai oktobrÄ«, pÄc stabilizÄcijas. Node.js 16.0 tiks atbalstÄ«ts lÄ«dz 2023. gada aprÄ«lim. Node.js 14.0 iepriekÅ”ÄjÄs LTS filiÄles apkope ilgs lÄ«dz 2023. gada aprÄ«lim, bet aizpÄrn LTS 12.0 filiÄle ā lÄ«dz 2022. gada aprÄ«lim. 10.0 LTS filiÄles atbalsts tiks pÄrtraukts pÄc 10 dienÄm.
Galvenie uzlabojumi:
- V8 dzinÄjs ir atjauninÄts uz versiju 9.0 (Node.js 15 izmantoja versiju 8.6), kas ļauj ieviest tÄdas funkcijas kÄ regulÄro izteiksmju rekvizÄ«ts āindeksiā (ietver masÄ«vu ar atbilstÄ«bas grupu sÄkuma un beigu pozÄ«cijÄm) , Atomics metode pakalpojumÄ Node.js 16 .waitAsync (Atomics.wait asinhronÄ versija), atbalsts await atslÄgvÄrda izmantoÅ”anai augstÄkÄ lÄ«meÅa moduļos. Funkciju izsaukumi ir paÄtrinÄti situÄcijÄs, kad nodoto argumentu skaits neatbilst funkcijÄ definÄtajiem parametriem.
- Timers Promises API ir stabilizÄta, nodroÅ”inot alternatÄ«vu funkciju kopu darbam ar taimeriem, kas atgriež Promise objektus kÄ izvadi, kas novÄrÅ” nepiecieÅ”amÄ«bu izmantot util.promisify(). importÄt { setTimeout } no 'taimeri/solÄ«jumi'; async function palaist() { gaidÄ«t setTimeout(5000); console.log('Sveika, pasaule!'); } palaist();
- Ir pievienota Web Crypto API eksperimentÄla ievieÅ”ana, kas izstrÄdÄta, lai veiktu pamata kriptogrÄfijas darbÄ«bas tÄ«mekļa lietojumprogrammu pusÄ, piemÄram, manipulÄcijas ar kriptogrÄfijas jaucÄjiem, digitÄlo parakstu Ä£enerÄÅ”ana un pÄrbaude, datu kodÄÅ”ana un dekodÄÅ”ana, izmantojot dažÄdas Å”ifrÄÅ”anas metodes, un kriptogrÄfiski droÅ”u Ä£enerÄÅ”ana. nejauÅ”i skaitļi. API nodroÅ”ina arÄ« funkcijas atslÄgu Ä£enerÄÅ”anai un pÄrvaldÄ«bai.
- N-API (API papildinÄjumu izstrÄdei) ir atjauninÄts uz 8. versiju.
- Ir veikta pÄreja uz jauno pakotÅu pÄrvaldnieka NPM 7.10 izlaidumu.
- StabilizÄta AbortController klases ievieÅ”ana, kas ir balstÄ«ta uz AbortController Web API un ļauj atcelt signÄlus atlasÄ«tajÄs uz Promise balstÄ«tajÄs API.
- Atbalsts avota kartes formÄta treÅ”ajai versijai, ko izmanto, lai salÄ«dzinÄtu Ä£enerÄtos, apstrÄdÄtos vai iepakotos moduļus ar oriÄ£inÄlo avota kodu, ir stabilizÄts.
- Lai nodroÅ”inÄtu saderÄ«bu ar mantotajÄm tÄ«mekļa API, ir pievienotas metodes buffer.atob(data) un buffer.btoa(data).
- Ir sÄkusies komplektÄciju veidoÅ”ana jaunÄm Apple ierÄ«cÄm, kas aprÄ«kotas ar M1 ARM mikroshÄmu.
- Uz platformas Linux Kompilatora versijas prasÄ«bas ir paaugstinÄtas lÄ«dz GCC 8.3.
AtgÄdinÄm, ka Node.js platformu var izmantot gan tÄ«mekļa lietojumprogrammu servera puses atbalstam, gan standarta klienta un servera puses tÄ«kla programmu izveidei. Lai paplaÅ”inÄtu Node.js lietojumprogrammu funkcionalitÄti, ir sagatavota plaÅ”a moduļu kolekcija, tostarp tie, kuriem ir implementÄcijas. serveriem un HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klienti, moduļi integrÄcijai ar dažÄdiem tÄ«mekļa ietvariem, WebSocket un Ajax apstrÄdÄtÄji, savienotÄji ar DBVS (MySQL, PostgreSQL, SQLite, MongoDB), veidÅu dzinÄji, CSS dzinÄji, kriptogrÄfisko algoritmu un autorizÄcijas sistÄmu (OAuth) ievieÅ”ana, XML parsÄtÄji.
Lai apstrÄdÄtu lielu skaitu paralÄlu pieprasÄ«jumu, Node.js izmanto asinhronu koda izpildes modeli, kas balstÄ«ts uz nebloÄ·ÄjoÅ”u notikumu apstrÄdi un atzvanīŔanas apstrÄdÄtÄjiem. AtbalstÄ«tÄs savienojumu multipleksÄÅ”anas metodes ietver epoll, kqueue, /dev/poll un select. Savienojumu multipleksÄÅ”anai tiek izmantota libuv bibliotÄka, kas ir libev Unix sistÄmÄs un IOCP IOCP superkopa. WindowsLibeio bibliotÄka tiek izmantota pavedienu kopas izveidei, un c-ares ir integrÄts, lai veiktu DNS vaicÄjumus nebloÄ·ÄjoÅ”Ä režīmÄ. Visi bloÄ·ÄjoÅ”ie sistÄmas izsaukumi tiek izpildÄ«ti pavedienu kopas ietvaros un pÄc tam, tÄpat kÄ signÄlu apstrÄdÄtÄji, atgriež savus rezultÄtus, izmantojot nenosauktu cauruli. JavaScript izpildi nodroÅ”ina Google V8 dzinÄjs (Microsoft arÄ« izstrÄdÄ Node.js variantu ar Chakra-Core dzinÄju).
SavÄ pamatÄ Node.js ir lÄ«dzÄ«gs Perl AnyEvent, Ruby Event Machine, Python Twisted ietvariem un Tcl notikumu ievieÅ”anai, taÄu notikuma cilpa programmÄ Node.js ir paslÄpta no izstrÄdÄtÄja un atgÄdina notikumu apstrÄdi tÄ«mekļa lietojumprogrammÄ, kas darbojas. pÄrlÅ«kprogrammÄ. Rakstot lietojumprogrammas node.js, ir jÄÅem vÄrÄ, piemÄram, notikumu vadÄ«tas programmÄÅ”anas specifika, nevis jÄdara "var rezultÄts = db.query("select..");" ar darba pabeigÅ”anas gaidīŔanu un sekojoÅ”u rezultÄtu apstrÄdi Node.js izmanto asinhronÄs izpildes principu, t.i. kods tiek pÄrveidots par "db.query("select..", funkcija (rezultÄts) {rezultÄta apstrÄde});", kurÄ vadÄ«ba uzreiz pÄries tÄlÄkam kodam, un vaicÄjuma rezultÄts tiks apstrÄdÄts lÄ«dz ar datu saÅemÅ”anu.
TurklÄt var atzÄ«mÄt, ka Deno uzÅÄmums, kuru nodibinÄja Node.js radÄ«tÄjs, lai izstrÄdÄtu nÄkamÄs paaudzes Deno platformu, investÄ«cijas saÅÄma 4.9 miljonus USD. PÄc sava mÄrÄ·a Deno ir lÄ«dzÄ«gs Node.js, taÄu tas cenÅ”as novÄrst Node.js arhitektÅ«rÄ pieļautÄs konceptuÄlÄs kļūdas un nodroÅ”inÄt lietotÄjiem droÅ”Äku vidi. Tiek atzÄ«mÄts, ka Deno biznesa risinÄjumi tiks veidoti uz pilnÄ«gi atvÄrtiem produktiem, un Open Core modelis ar atseviŔķu maksas funkcionalitÄti tiek uztverts kÄ nepieÅemams Deno platformai.
Avots: opennet.ru
