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.
- Linux platformÄ kompilatora versijas prasÄ«bas ir paaugstinÄtas lÄ«dz GCC 8.3.
AtgÄdinÄm, ka Node.js platformu var izmantot gan Web aplikÄciju serveru uzturÄÅ”anai, gan parastu klientu un serveru tÄ«kla programmu izveidei. Lai paplaÅ”inÄtu Node.js aplikÄciju funkcionalitÄti, ir sagatavota liela moduļu kolekcija, kurÄ var atrast moduļus ar HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serveru un klientu ievieÅ”anu, moduļus integrÄcijai ar dažÄdiem tÄ«mekļa ietvariem, WebSocket un Ajax apdarinÄtÄjiem, DBVS savienotÄjiem (MySQL, PostgreSQL, SQLite, MongoDB), veidÅu dzinÄjiem, CSS dzinÄjiem, kriptogrÄfijas algoritmu un autorizÄcijas sistÄmu (OAuth) implementÄcijÄm, XML parsÄtÄjiem.
Lai nodroÅ”inÄtu liela skaita paralÄlu pieprasÄ«jumu apstrÄdi, Node.js izmanto asinhronÄ koda izpildes modeli, kura pamatÄ ir notikumu nebloÄ·ÄjoÅ”a apstrÄde un atzvanÄ«Å”anas apstrÄdÄtÄju definÄ«cija. AtbalstÄ«tÄs savienojumu multipleksÄÅ”anas metodes ir epoll, kqueue, /dev/poll un select. Savienojuma multipleksÄÅ”anai tiek izmantota libuv bibliotÄka, kas ir libev papildinÄjums Unix sistÄmÄs un IOCP operÄtÄjsistÄmÄ Windows. Libeio bibliotÄka tiek izmantota, lai izveidotu pavedienu pÅ«lu, un c-ares ir integrÄta, lai veiktu DNS vaicÄjumus nebloÄ·ÄjoÅ”Ä režīmÄ. Visi sistÄmas izsaukumi, kas izraisa bloÄ·ÄÅ”anu, tiek izpildÄ«ti pavedienu pÅ«lÄ un pÄc tam, tÄpat kÄ signÄlu apstrÄdÄtÄji, pÄrsÅ«ta sava darba rezultÄtu atpakaļ caur nenosauktu cauruli (cauruli). JavaScript koda izpilde tiek nodroÅ”inÄta, izmantojot Google izstrÄdÄto V8 dzinÄju (turklÄt Microsoft izstrÄdÄ Node.js versiju 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