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
