Ilmus Node.js 24.0.0, mis on platvorm JavaScripti võrgu rakenduste käitamiseks. Node.js 24.0 kuulub pikaajalise toetuse harudesse, kuid see staatus antakse ainult oktoobris stabiliseerimise järel. Node.js 24.x toetamine kestab kuni 30. aprillini 2028. Eelmise LTS haru Node.js 22.x hooldus kestab kuni aprillini 2027 ja selle eelneva LTS haru 20.x hooldus kuni aprillini 2026. LTS haru 18.x hooldus lõppes 30. aprillil 2025 ja vahepealse haru Node.js 23.x hooldus lõpeb 1. juunil 2025.
Peamised täiustused:
- AsyncLocalStorage API-s on vaikimisi kasutusel AsyncContextFrame klass, mis on märgistatud stabiilseks. AsyncContextFrame rakendab tõhusamat mehhanismi asünkroonse konteksti jälgimiseks, mis aitab märgatavalt parandada jõudlust.
- URLPattern API on nüüd saadaval globaalse objektina, mida saab kasutada ilma selge importimiseta. URLPattern pakub võimalusi URL-i vastavuse kontrollimiseks kindlale mustrile, mida näiteks saab kasutada linkide analüüsimiseks.
- Permission Model'i mehhanism on paranenud ja stabiliseeritud, võimaldades piirata juurdepääsu teatud ressurssidele täitmise protsessis (näiteks on võimalik keelata alamprotsesside loomine, piirata kirjutamise või lugemise juurdepääsu teatud failisüsteemi osadele, keelata laiendused). Katselipu „—experimental-permission“ asemel Permission Model'i aktiveerimiseks saab nüüd kasutada lippu „—permission“.
- Node:test (test_runner) mooduli funktsioone on laiendatud, et luua ja käivitada JavaScripti teste, mis tagastavad tulemuse TAP (Test Anything Protocol) formaadis. Moodul ootab nüüd automaatselt aktiveeritud testide lõpetamist, ilma et oleks vaja kasutada await'i.
- HTTP-klient undici on uuendatud 7.x haru versioonile, mis parandab jõudlust ja lisab uusi HTTP funktsioone.
- V8 mootor on uuendatud versioonile 13.6, mida kasutatakse Chromium 136-s. Uute võimaluste seas võrreldes eelmise Node.js väljaandega on märgitud toetust tüübidimensionaalsetele massiividele Float16Array, ressursside käsitsi haldamist, meetodit RegExp.escape (stringide escaping'i RegExp jaoks), 64-bitiseid näitajaid (Memory64) WebAssembly-s, meetodit Error.isError.
- Pakettihaldur NPM on uuendatud versioonile 11.
- MSVC kompilaatori toetus on lõpetatud. Windowsi platvormil koostamiseks tuleb kasutada ClangCL-i.
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 suure hulga parallelsete päringute töötlemiseks asünkroonset mudelit, mis põhineb sündmustepõhisel mitteblokeerival koodijooksul ja tagasiside töötlejate määramisel. Ühenduste multiplexerimiseks toetatakse selliseid meetodeid nagu epoll, kqueue, /dev/poll ning select. Ühenduste multiplexerimiseks kasutatakse libuv raamatukogu, mis on Unixis libev-i ja Windowsis IOCP-taseme ülekate. Niidipooli (thread pool) loomiseks kasutatakse libeio raamatukogu ning mitteblokeeriva DNS-päringu täitmiseks on integreeritud c-ares. Kõik süsteemikutsed, mis põhjustavad blokeerimise, täidetakse niidipoolis, edastades seejärel, nagu ka signaalide töötlejad, oma töö tulemuse tagasi anonüümsesse kanali (pipe) kaudu.
JavaScripti koodi täitmine toimub Google'i välja töötatud V8 mootori kaudu (t oletame, et Microsoft arendab samal ajal Node.js varianti Chakra-Core'i mootoriga). Node.js on põhimõtteliselt sarnane Perl AnyEvent'i, Ruby Event Machine'i, Python Twisted'i ja Tcl'i sündmuste rakendusega, kuid sündmusteforemni (event loop) Node.js-is on arendaja eest varjatud ja meenutab sündmuste töötlemist veebirakenduses, mis töötab brauseris.
Allikas: opennet.ru
