Ilmus Node.js 25.0.0, mis on platvorm JavaScripti võrgurakenduste käitamiseks. Node.js 25.0 kuulub vahepealsete harude alla, mille toetus kestab 7 kuud (kuni juuni 2026). Järgmiste päevade jooksul stabiliseeritakse Node.js 24 haru, mis saab oktoobri lõpus LTS staatuse ja mida toetatakse aprillini 2028. Eelmiste LTS-harude Node.js 22.x ja 20.x tugi kestab vastavalt aprillini 2027 ja 2026.
Peamised parandused:
- V8 mootori versioon on uuendatud 14.1-ni, mida kasutatakse Chromiumis 141. Uuenenud Node.js-i väljaande võrreldes eelneva versiooniga on märkimisväärne jõudluse tõus meetodis JSON.stringify, samuti WebAssembly ja JIT optimeerimine ning meetodite teostamine Uint8Array ja base64 või heksadetsimaalsete andmete vaheliseks konvertimiseks.
- Permission Model'i mehhanismi, mis võimaldab piirata juurdepääsu teatud ressurssidele jõudmise protsessis, on lisatud valik „—allow-net“, et tagada võrgujuurdepääs (kui valikut „—allow-net“ ei ole määratud, toob Node.js-i käitamine režiimis „—permission“ kaasa ERR_ACCESS_DENIED veateate, kui proovite teostada võrguoperatsioone).
- Käivitub vaikesätetena brauseritega ühilduv API Web Storage, mis on mõeldud püsivaks (localStorage klass) või ajutiseks (sessionStorage klass) andmete salvestamiseks võtme/väärtuse formaadis. Eemaldatud eksperimentaalse arenduse märge API Web Storage'ilt.
- Globaalsete (ilma selge impordita kasutatavate) klasside hulka on lisatud ErrorEvent, mis pakub brauseritega ühilduvat liidest vigadega seotud sündmuste töötlemiseks.
- WebAssembly'le on lisatud toetus JSPI (JavaScript Promise Integration) API-le, mis võimaldab juurdepääsu asünkroonsetele Web API-dele järjestikku käitatavast koodist, mis on kompileeritud WebAssembly'sse.
- Lisatud on valik 'NODE_COMPILE_CACHE_RELATIVE_PATH', et võimaldada kompileeritud objektide puhverdamise kaasaskantavat tööd. Sel režiimil arvutatakse objektide tuvastamiseks hash'id, kasutades failide suhtelisi teid, mis võimaldab kaustade sisu koos puhverdatud andmetega liigutada ja sisestada.
- Lisatud on võimalus CPU koormuse profileerimiseks.
- Pakettihaldur NPM on uuendatud versioonile 11.6.2.
- Lisatud on Python 3.14 toetus.
- Minimaalsed toetatavad versioonid on kinnitatud Clang 19 ja Xcode 16.4.
- SlowBuffer objekti tugi lõpetati, kuna see kuulutati varem avalikult välja. Kasutage SlowBuffer asemel meetodit Buffer.allocUnsafeSlow().
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
