Ilmus Node.js 25.0.0, platvorm, mis on mÔeldud JavaScripti-pÔhiste vÔrgurakenduste tÀitmiseks. Node.js 25.0 kuulub vaheversioonide harusse, mille hooldus kestab 7 kuud (kuni juuni 2026). JÀrgmiste pÀevade jooksul lÔpetatakse Node.js 24 haru stabiliseerimine, mis saab oktoobri lÔpuks LTS staatuse ja mida toetatakse kuni aprillini 2028. Node.js 22.x ja 20.x varasemate LTS-harude toetus kestab vastavalt aprillini 2027 ja 2026.
Peamised tÀiustused:
- V8 mootori versioon on uuendatud 14.1-le, mis on kasutusel Chromium 141-s. Uue Node.js vĂ€ljaande vĂ”rreldes eelmine on tĂ€heldatud olulist jĂ”udluse paranemist JSON.stringify meetodi puhul, WebAssembly ja JIT optimeerimist ning meetodite rakendamist Uint8Array ja base64 vĂ”i kuueteistkĂŒmnendsĂŒsteemis esitlemise vaheliseks teisendamiseks.
- Permission Model mehhanismi, mis vĂ”imaldab piirata juurdepÀÀsu teatud ressurssidele tĂ€itmise kĂ€igus, on lisatud valik «âallow-net» vĂ”rgu juurdepÀÀsu tagamiseks (kui «âallow-net» ei ole mÀÀratud, toob Node.js kĂ€ivitamine «âpermission» reĆŸiimis vĂ€lja ERR_ACCESS_DENIED veateate katsetes vĂ”rguoperatsioonide teostamiseks).
- On vaikimisi lubatud brauseritega ĂŒhilduv Web Storage API, mis on mĂ”eldud alalise (localStorage klass) vĂ”i ajutise (sessionStorage klass) vĂ”tme/vÀÀrtuse vormingus andmete salvestamiseks. Web Storage API-lt on eemaldatud eksperimentaalse arenduse mĂ€rge.
- Globaalsete klasside hulka, mida vĂ”ib kasutada ilma selge importimiseta, on lisatud ErrorEvent klass, mis pakub brauseritega ĂŒhilduvat liidest vigadega seotud sĂŒndmuste töötlemiseks.
- WebAssembly jaoks on lubatud JSPI (JavaScript Promise Integration) API tugi, mis vĂ”imaldab ligi pÀÀseda asĂŒnkroonsetele Web API-dele jĂ€rjestikku tĂ€idetud koodis, mis on koostatud WebAssembly's.
- Lisatud on «NODE_COMPILE_CACHE_RELATIVE_PATH» valik, mis vĂ”imaldab ĂŒlekantavat tööd kompileeritud objektide cache'iga. Sel reĆŸiimil arvutatakse objektide kindlaksmÀÀramiseks hash'id, kasutades suhtelisi failiteid, mis vĂ”imaldab liikuda ja integreerida koodi katalooge koos cache'iga.
- Lisatud on toetuse pakkuv CPU koormuse profileerimise vÔimalus.
- Paketihaldur NPM on vÀrskendatud versioonile 11.6.2.
- Lisatud on Python 3.14 toetus.
- Minimaalselt toetatavate versioonide hulka kuuluvad Clang 19 ja Xcode 16.4.
- SlowBuffer objekti tugi lÔpetati, kuna see kuulutati varasemalt vananenuks vÔimalike turvaprobleemide tÔttu. SlowBufferi asemel tuleks kasutada meetodit Buffer.allocUnsafeSlow().
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.
Node.js kasutab suurt hulka samaaegsete pĂ€ringute töötlemiseks asĂŒnkroonset koodimudelit, mis pĂ”hineb mittesidetavate sĂŒndmuste töötlemisel ja callback-töötlejate mÀÀramisel. Ăhenduste multiplexerimismeetodite hulka kuuluvad sellised meetodid nagu epoll, kqueue, /dev/poll ja select. Ăhenduste multiplexerimiseks kasutatakse libuv teeki, mis on Unixis libev ja Windowsis IOCP peal. Töötajate grupi (thread pool) loomiseks kasutatakse libeio teeki ning mittesidetavaks DNS-pĂ€ringute tĂ€itmiseks on integreeritud c-ares. KĂ”ik sĂŒsteemikutsed, mis pĂ”hjustavad blokeerimist, tehakse töötajate grupis ja seejĂ€rel edastavad need, nagu ka signaalide töötlejad, oma töö tulemuse tagasi kaudu nimetamata toru (pipe).
JavaScripti koodi tĂ€itmine toimub Google'i arendatud V8 mootori kaudu (lisaks arendab Microsoft Node.js varianti Chakra-Core mootori abil). Node.js on olemuselt sarnane Perl AnyEvent, Ruby Event Machine, Python Twisted ja Tcl'i sĂŒndmustöötluse raamistikuga, kuid Node.js sĂŒndmustöötluse tsĂŒkkel on arendajate eest peidetud ja meenutab sĂŒndmustöötlust veebirakenduses, mis töötab brauseris.
Allikas: opennet.ru
