Pieejama servera puses JavaScript platforma Node.js 19.0

Tika izlaista platforma Node.js 19.0 tīkla lietojumprogrammu palaišanai JavaScript. Node.js 19 ir regulāra atbalsta filiāle, kuras atjauninājumi ir pieejami līdz 2023. gada jūnijam. Tuvākajās dienās tiks pabeigta Node.js 18 filiāles stabilizācija, kas saņems LTS statusu un tiks atbalstīta līdz 2025. gada aprīlim. Node.js 16.0 iepriekšējās LTS filiāles apkope ilgs līdz 2023. gada septembrim, bet gadu aizpērn LTS 14.0 filiālei līdz 2023. gada aprīlim.

Galvenie uzlabojumi:

  • V8 dzinējs ir atjaunināts uz versiju 10.7, ko izmanto Chromium 107. Starp dzinēja izmaiņām, salīdzinot ar Node.js 18 filiāli, tiek atzīmēta trešās Intl.NumberFormat API versijas ieviešana, kas pievieno jaunas funkcijas formatRange (), formatRangeToParts() un selectRange(), kopu grupēšana, jaunas iespējas noapaļošanai un iestatīšanas precizitātei, iespēja interpretēt virknes kā decimālskaitļus. Ir atjauninātas arī iekļautās atkarības llhttp 8.1.0 un npm 8.19.2.
  • Ir piedāvāta eksperimentāla komanda "node -watch" ar novērošanas režīma ieviešanu, kas nodrošina, ka process tiek restartēts, kad mainās importētais fails (piemēram, ja tiek izpildīts "node -watch index.js", process tiks automātiski restartēts, kad mainās index.js).
  • Visiem izejošajiem HTTP/HTTPS savienojumiem ir iespējots HTTP 1.1 Keep-Alive mehānisma atbalsts, kas atstāj savienojumu uz noteiktu laiku atvērtu, lai viena savienojuma ietvaros apstrādātu vairākus HTTP pieprasījumus. Paredzams, ka Keep-Alive uzlabos caurlaidspēju un veiktspēju. Pēc noklusējuma savienojuma atvēršanas taimauts ir iestatīts uz 5 sekundēm. HTTP klienta ieviešanai ir pievienots atbalsts Keep-Alive HTTP galvenes parsēšanai servera atbildēs, un Node.js HTTP servera ieviešanai ir pievienota automātiska neaktīvo klientu atvienošana, izmantojot Keep-Alive.
  • WebCrypto API ir pārvietota uz stabilo kategoriju, izņemot funkcijas, kas izmanto Ed25519, Ed448, X25519 un X448 algoritmus. Lai piekļūtu WebCrypto modulim, tagad varat izmantot globalThis.crypto vai prasīt('node:crypto').webcrypto.
  • Ir noņemts atbalsts DTrace, SystemTap un ETW (notikumu izsekošanas operētājsistēmai Windows) izsekošanas rīkiem, kuru uzturēšana tika uzskatīta par nepiemērotu, jo to atjaunināšana ir sarežģīta, ja nav atbilstoša atbalsta plāna.

Node.js platformu var izmantot gan servera puses Web lietojumprogrammu atbalstam, 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 apstrādātājiem, savienotājiem ar DBVS (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.

Avots: opennet.ru

Pievieno komentāru