Saadaval on serveripõhine JavaScript platvorm Node.js 19.0

Ilmnes Node.js 19.0, platvorm, mis on mõeldud JavaScripti põhiste võrgu rakenduste käitamiseks. Node.js 19 kuulub tavapärase toega haru alla, mille uuendusi antakse välja kuni 2023. aasta juuni. Järgmiste päevade jooksul lõpetatakse Node.js 18 haru stabiliseerimine, mis saab LTS staatuse ja mille toetamist jätkatakse kuni aprilli 2025. Eelmise LTS haru Node.js 16.0 toetamist jätkatakse kuni septembri 2023, samas kui eelmine LTS haru 14.0 toetamine lõpeb aprillis 2023.

Peamised täiustused:

  • V8 mootori versioon on uuendatud 10.7-le, mis on kasutusel Chromium 107-s. V8 mootori muudatused võrreldes Node.js 18 haruga hõlmavad kolmanda versiooni API Intl.NumberFormat rakendamist, mis sisaldab uusi funktsioone formatRange(), formatRangeToParts() ja selectRange(), kogude rühmitamist, uusi ümardamisvalikuid ja täpsuse määramist, samuti stringide tõlgendamise võimalust kümnendarvudena. Samuti on uuendatud komplekti kuuluvaid sõltuvusi llhttp 8.1.0 ja npm 8.19.2.
  • Kasutusele on võetud katsetamise faas «node —watch», mis rakendab jälgimisrežiimi, võimaldades protsessi taaskäivitamist importfaili muutumisel (näiteks, kui käivitatakse «node —watch index.js», taaskäivitub protsess automaatselt, kui fail index.js muutub).
  • Kõikidele välistele HTTP/HTTPS ühendustele on lisatud HTTP 1.1 Keep-Alive mehhanismi tugi, mis jätab ühenduse teatud ajaks avatuks, et töödelda mitmeid HTTP-päringuid ühe ja sama ühenduse piires. Eeldatakse, et Keep-Alive'i rakendamine aitab suurendada läbilaskevõimet ja jõudlust. Vaikimisi on ühenduse hoidmise aeg määratud 5 sekundiks. HTTP-kliendi rakendusse on lisatud tuge Keep-Alive HTTP-pealkirja parsimiseks vastustes, serveridja Node.js HTTP-serverisse on lisatud mitteaktiivsete klientide automaatne katkestamine, kes kasutavad Keep-Alive'i.
  • Stabiilseks on muudetud API WebCrypto, välja arvatud funktsioonid, mis kasutavad algoritme Ed25519, Ed448, X25519 ja X448. Nüüd on võimalik kasutada WebCrypto moodulit globalThis.crypto või require(‘node:crypto’).webcrypto kaudu.
  • Eemaldatud on toetus jälgimisriistadele DTrace, SystemTap ja ETW (Event Tracing for Windows), mille toetamine on tunnistatud otstarbekaks, kuna nende jätkusuutlikkuse tagamine on keeruline ilma vastava toetusplaanita.

Node.js platvormi saab kasutada nii veebirakenduste serveripoolseks toe tagamiseks kui ka tavaliste klient-serveri võrgurakenduste loomiseks. Node.js jaoks on välja töötatud suur moodulite kogumik, kust leiate mooduleid, mis hõlmavad serverid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 kliente, mooduleid erinevate veebiraamistike integreerimiseks, WebSocket ja Ajax töötlejat, andmebaasi ühendusi (MySQL, PostgreSQL, SQLite, MongoDB), malligeneraatorid, CSS-mootorid, krüptoalgoritmide rakendused ja autentimissüsteemid (OAuth), XML-parsereid.

Suurte paralleelsete päringute töötlemise tagamiseks kasutab Node.js asünkroonset koodikäivitamise mudelit, mis põhineb mitteblokeerival sündmustöötlusel ja tagasiside töötlejate määramisel. Ühenduste multiplexerimise meetoditeks on sellised meetodid nagu epoll, kqueue, /dev/poll ja select. Ühenduste multiplexerimiseks kasutatakse libuv teeki, mis on libevi peal Unix-süsteemides ja IOCP peal Windowsis. Tööde võrgu loomise jaoks kasutatakse libeio teeki, niisuguste mitteblokeerivate DNS-päringute töötlemiseks on integreeritud c-ares. Kõik süsteemikutsed, mis põhjustavad blokeerimist, toimuvad teede grupis ja edastavad seejärel oma töö tulemuse tagasi anonüümse kanali kaudu (pipe). JavaScripti koodi täitmine toimub Google'i välja töötatud V8 mootori kaudu (Microsoft arendab lisaks versiooni Node.js Chakra-Core mootori kasutades).

Oma olemuselt on Node.js sarnane Perl AnyEvent, Ruby Event Machine, Python Twisted raamistikele ja sündmuste rakendusele Tcl-is, kuid Node.js sündmuste töötlemise ring on arendajate eest peidetud ja sarnaneb veebirakenduse sündmuste töötlemisega, mis töötab brauseris. Node.js rakenduste kirjutamisel tuleb arvestada sündmustepõhise programmeerimise eripära, näiteks, selle asemel, et täita "var result = db.query('select..');" oodates töö valmimist ja seejärel tulemuste töötlemist, kasutatakse Node.js-is asünkroonilise täitmise printsiipi, st kood muudetakse "db.query('select..', function (result) {tulemuse töötlemine});", mille puhul juhtimine läheb koheselt järgmisele koodile ja päringu tulemust töödeldakse andmete saamisel.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster