Tika izlaists Node.js 18.0 ā platforma tÄ«kla lietojumprogrammu palaiÅ”anai JavaScript. Node.js 18.0 ir klasificÄts kÄ ilgtermiÅa atbalsta atzars, taÄu Å”is statuss tiks pieŔķirts tikai oktobrÄ«, pÄc stabilizÄcijas. Node.js 18.x tiks atbalstÄ«ts lÄ«dz 2025. gada aprÄ«lim. IepriekÅ”ÄjÄs Node.js 16.x LTS filiÄles apkope ilgs lÄ«dz 2024. gada aprÄ«lim, bet aizpÄdÄjÄ LTS fila 14.x ā lÄ«dz 2023. gada aprÄ«lim. 12.x LTS filiÄle tiks pÄrtraukta 30. aprÄ«lÄ«, bet Node.js 17.x izstÄdÄ«Å”anas filiÄle tiks pÄrtraukta 1. jÅ«nijÄ.
Galvenie uzlabojumi:
- V8 dzinÄjs ir atjauninÄts uz versiju 10.1, kas tiek izmantota operÄtÄjsistÄmÄ Chromium 101. SalÄ«dzinot ar Node.js versiju 17.9.0, tagad tiek atbalstÄ«tas tÄdas funkcijas kÄ findLast un findLastIndex metodes elementu atraÅ”anai, salÄ«dzinot ar masÄ«vs un funkcija Intl.supportedValuesOf. Uzlabota Intl.Locale API. Ir paÄtrinÄta klaÅ”u lauku un privÄto metožu inicializÄcija.
- PÄc noklusÄjuma ir iespÄjota eksperimentÄlÄ fetch() API, kas paredzÄta resursu ielÄdei tÄ«klÄ. IevieÅ”ana ir balstÄ«ta uz kodu no HTTP/1.1 undici klienta un ir pÄc iespÄjas tuvÄka lÄ«dzÄ«gam API, kas tiek nodroÅ”inÄta pÄrlÅ«kprogrammÄs. Tas ietver atbalstu FormData, Headers, Request un Response saskarnÄm, lai manipulÄtu ar HTTP pieprasÄ«jumu un atbilžu galvenÄm. const res = gaidÄ«t fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = gaidÄ«t res.json(); konsole.log(dati); }
- Ir pievienota eksperimentÄla Web Streams API ievieÅ”ana, kas nodroÅ”ina piekļuvi tÄ«klÄ saÅemtajÄm datu straumÄm. API ļauj pievienot savus apstrÄdÄtÄjus darbam ar datiem, kad informÄcija tiek saÅemta tÄ«klÄ, negaidot visa faila lejupielÄdi. Tagad pakalpojumÄ Node.js ir pieejami objekti: ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream un DecompressionStream.
- Blob API ir pÄrvietota uz stabilu, ļaujot iekapsulÄt nemainÄ«gus neapstrÄdÄtus datus droÅ”ai lietoÅ”anai dažÄdos darbinieku pavedienos.
- BroadcastChannel API ir padarÄ«ta stabila, ļaujot organizÄt ziÅojumu apmaiÅu asinhronÄ režīmÄ formÄtÄ āviens sÅ«tÄ«tÄjs ā daudzi adresÄtiā.
- Pievienots eksperimentÄlais moduļa mezgls: tests, lai izveidotu un palaistu JavaScript, kas atgriež rezultÄtus TAP (Test Anything Protocol) formÄtÄ.
- Tiek nodroÅ”inÄta gatavu komplektu Ä£enerÄÅ”ana Red Hat Enterprise Linux (RHEL) 8 un citiem izplatÄ«jumiem, kuru pamatÄ ir Glibc 2.28+, tostarp Debian 10 un Ubuntu 20.04, kÄ arÄ« macOS 10.15+. SakarÄ ar problÄmÄm ar V8 dzinÄja bÅ«vÄjumu, Windows 32 bitu bÅ«vÄjumu izveide uz laiku ir apturÄta.
- NodroÅ”inÄta eksperimentÄla opcija Node.js izpildÄmÄ faila izveidei ar lietotÄja atlasÄ«tiem komponentiem, kas inicializÄti startÄÅ”anas laikÄ. Lai definÄtu sÄkuma komponentus, konfigurÄÅ”anas skriptam ir pievienota opcija ā--node-snapshot-mainā, piemÄram, ā./configure ānode-snapshot-main=marked.js; nosaukums mezgls"
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