Saadaval on JavaScript serveripõhine platvorm Node.js 19.0

Ilmus Node.js 19.0, JavaScripti põhine võrgurakenduste jooksutamise platvorm. Node.js 19 kuulub tavapärase toetuse haru alla, millele uuendusi antakse kuni 2023. aasta juunini. Järgmise paari päeva jooksul lõpetatakse Node.js 18 haru stabiliseerimine, mis saab LTS staatuse ja mille toetamine kestab kuni 2025. aasta aprillini. Eelmise LTS haru Node.js 16.0 toetamine lõppeb 2023. aasta septembris ja eelmise eelmise LTS haru 14.0 toetamine sellega lõppeb 2023. aasta aprillis.

Peamised parandused:

  • V8 mootor on uuendatud versioonile 10.7, mida rakendatakse Chromium 107. võrreldes Node.js 18 haruga toodi välja kolmanda versiooni API Intl.NumberFormat, milles lisati uued funktsioonid formatRange(), formatRangeToParts() ja selectRange(), hulkade rühmitamine, uued ümardamise valikud ja täpsuse määramine, samuti stringide tõlgendamine kümnendikena. Samuti on värskendatud komplekti kuuluvaid sõltuvusi llhttp 8.1.0 ja npm 8.19.2.
  • Pakutakse katsetust konsooli "node --watch" režiimiga, mis võimaldab jälgimist, tagades protsessi taaskäivitamise impordifaili muutmisel (näiteks juhul, kui käivitada "node --watch index.js", taaskäivitub protsess automaatselt, kui index.js'i muudetakse).
  • Kõikide väliste HTTP/HTTPS-ühenduste jaoks on aktiveeritud HTTP 1.1 Keep-Alive mehhanismi tugi, mis hoiab ühenduse teatud aja avatuna, et töötleda mitut HTTP-päringut ühe ühenduse raames. Eeldatakse, et Keep-Alive'i rakendamine suurendab läbilaskevõimet ja tootlikkust. Vaikimisi on ühenduse avatuna hoidmise taimer seadistatud 5 sekundile. HTTP-kliendi rakendusse on lisatud tugi Keep-Alive HTTP-pealkirja analüüsimiseks vastustes. serverile, ning Node.js HTTP-serveri rakendusse on lisatud automaatne inaktiveeritud klientide lahtiühendamine, kes kasutavad Keep-Alive'i.
  • Stabiilsete valikute hulka on viidud API WebCrypto, välja arvatud funktsioonid, mis kasutavad algoritme Ed25519, Ed448, X25519 ja X448. WebCrypto moodulile pääseb nüüd ligi, kasutades globalThis.crypto või require('node:crypto').webcrypto.
  • DTrace, SystemTap ja ETW (Event Tracing for Windows) jälgimisriistade tugi on eemaldatud, kuna nende hooldust peetakse põhjendamatuks keerukuse tõttu, mis tuleneb puuduvatest toetamisplaanidest.

Node.js platvormi saab kasutada nii veebirakenduste serveripoolses toetuses kui ka tavapäraste kliendi- ja serveripoolsete võrguprogrammide loomiseks. Node.js rakenduste funktsionaalsuse laiendamiseks on koostatud suur moodulite kogu, kust leiate moodulid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klientide rakendamiseks. serverite Lisaks on saadaval moodulid erinevate veebiraamistikest integreerimiseks, WebSocketi ja Ajax töötlejate, andmebaasi ühenduse moodulite (MySQL, PostgreSQL, SQLite, MongoDB), templaatide, CSS-mootorite, krüptoalgoritmide ja autoriseerimissüsteemide (OAuth), XML-parside rakendusteks.

Node.js kasutab paljude paralleelsete päringute töötlemiseks asünkroonset koodikäitlusmudelit, mille aluseks on sündmuste mittesüvendav töötlemine ja tagasikutsumiste määramine. Ühenduste multiplexerimiseks toetatakse selliseid meetodeid nagu epoll, kqueue, /dev/poll ja select. Ühenduste multiplexerimiseks kasutatakse libuv raamatukogu, mis on Unix-süsteemides libev ja Windowsis IOCP. Töötajate basaari (thread pool) loomiseks kasutatakse libeio raamatukogu ning mittesüvendav DNS-päringute töötlemine on integreeritud c-ares'iga. Kõik süsteemi kutsed, mis võivad blokeeruda, täidetakse töötajate basaari sees ja seejärel, nagu ka signaalide töötlejad, edastavad oma töö tulemuse tagasi anonüümsesse torusse (pipe). JavaScripti koodi täitmine tagatakse Google'i loodud V8 mootori kaasamise kaudu (täpsemalt arendab Microsoft Node.js varianti Chakra-Core mootoriga).

Node.js on teatud mõttes sarnane Perl AnyEvent, Ruby Event Machine, Python Twisted ja Tcl-i sündmustepõhiste rakendustega, kuid Node.js-i sündmuste töötlemise tsükkel (event loop) on arendaja eest varjatud ning sarnaneb veebirakenduse sündmuste töötlemisega, mis töötab brauseris. Node.js-i rakenduste kirjutamisel tuleb arvestada sündmustepõhise programmeerimise eripäradega. Näiteks, selle asemel et teostada "var result = db.query('select..');" ja oodata tulemuste töötlemise lõpetamist, kasutatakse Node.js-is asünkroonse täitmise põhimõtet, st kood muutub "db.query('select..', function (result) {töötle tulemus});", kus juhtimine läheb kohe edasi järgmisele koodile ja päringu tulemus töödeldakse andmete saabumise ajal.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster