Pieejama servera puses JavaScript platforma Node.js 18.0

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

Pievieno komentāru