Servera puses JavaScript Node.js 16.0 laidiens

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

Pievieno komentāru