Node.js 24.0.0, jukwaa la kuendesha programu za mtandao katika JavaScript, limetolewa. Node.js 24.0 imekabidhiwa kwa matawi ya usaidizi ya muda mrefu, lakini hali hii itawekwa mnamo Oktoba pekee, baada ya uimarishaji. Node.js 24.x itatumika hadi Aprili 30, 2028. Tawi la awali la LTS Node.js 22.x litatumika hadi Aprili 2027, na tawi la awali la LTS 20.x litatumika hadi Aprili 2026. Urekebishaji wa tawi la 18.x LTS utaisha Aprili 30, tawi la 2025 kati ya Node23. kumalizika Juni 1, 2025.
Maboresho kuu:
- API ya AsyncLocalStorage hutumia darasa la AsyncContextFrame kwa chaguo-msingi, ambalo limetiwa alama kuwa thabiti. AsyncContextFrame hutekelezea utaratibu mzuri zaidi wa kufuatilia muktadha wa asynchronous, ambao unaweza kuboresha utendaji kazi kwa kiasi kikubwa.
- URLPattern API sasa inapatikana kama kifaa cha kimataifa ambacho kinaweza kutumika bila uagizaji wa moja kwa moja. URLPattern hutoa uwezo wa kuangalia kama URL inalingana na mchoro maalum, ambao unaweza kutumika, kwa mfano, kuchanganua viungo.
- Utaratibu wa Mfano wa Ruhusa umeboreshwa na kuimarishwa, kukuwezesha kuzuia ufikiaji wa rasilimali fulani wakati wa utekelezaji (kwa mfano, unaweza kuzuia uundaji wa michakato ya mtoto, kuzuia ufikiaji wa kuandika au kusoma kwa sehemu fulani za FS, kuzima nyongeza). Badala ya bendera ya majaribio ya "--ruhusa-ya-majaribio", bendera ya "--ruhusa" sasa inaweza kutumika kuwezesha Muundo wa Ruhusa.
- Uwezo wa moduli ya nodi:test (test_runner), iliyoundwa ili kuunda na kuendesha majaribio katika JavaScript ambayo hurejesha matokeo katika umbizo la TAP (Test Anything Protocol) umepanuliwa. Moduli sasa inasubiri majaribio yaliyowekwa kiotomatiki kukamilika bila hitaji la kutumia.
- Kiteja cha undici HTTP kimesasishwa hadi tawi la 7.x, ambalo huboresha utendakazi na kuongeza usaidizi kwa vipengele vipya vya HTTP.
- Injini ya V8 imesasishwa hadi toleo la 13.6, linalotumika katika Chromium 136. Vipengele vipya ikilinganishwa na toleo la awali la Node.js ni pamoja na uwezo wa kutumia safu zilizochapwa za Float16Array, usimamizi wa rasilimali mwongozo, mbinu ya RegExp.escape (mifuatano ya kuepuka RegExp), viashirio vya 64-bit (Memory64.Erroris in the WebArrorissembly).
- Kidhibiti kifurushi cha NPM kimesasishwa hadi toleo la 11.
- Usaidizi wa mkusanyiko wa MSVC umesitishwa. Kwa ajili ya mkusanyiko kwenye mfumo Windows Lazima utumie ClangCL.
Jukwaa la Node.js linaweza kutumika kwa usaidizi wa seva kwa programu za wavuti na kwa kuunda programu za kawaida za mtandao wa mteja na seva. Ili kupanua utendakazi wa programu za Node.js, mkusanyiko mkubwa wa moduli umeandaliwa, ikiwa ni pamoja na zile zinazotekeleza. seva na wateja wa HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli za kuunganishwa na mifumo mbalimbali ya wavuti, vidhibiti vya WebSocket na Ajax, viunganishi vya DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injini za templeti, injini za CSS, utekelezaji wa algoriti za kriptografia na mifumo ya uidhinishaji (OAuth), vichanganuzi vya XML.
Ili kushughulikia idadi kubwa ya maombi yanayofanana, Node.js hutumia mfumo wa utekelezaji wa msimbo usio na mpangilio kulingana na usindikaji wa matukio yasiyozuia na vidhibiti vya kupiga simu. Mbinu za kuzidisha muunganisho zinazoungwa mkono ni pamoja na epoll, kqueue, /dev/poll, na select. Kuzidisha muunganisho hutumia maktaba ya libuv, ambayo ni sehemu ya juu ya libev kwenye mifumo ya Unix na IOCP kwenye WindowsMaktaba ya libeio hutumika kuunda kundi la nyuzi, na c-ares imeunganishwa ili kutekeleza maswali ya DNS katika hali isiyozuia. Simu zote za mfumo wa kuzuia hutekelezwa ndani ya kundi la nyuzi na kisha, kama vidhibiti vya mawimbi, hurudisha matokeo yao kupitia bomba lisilo na jina.
Utekelezaji wa msimbo wa JavaScript unahakikishwa kupitia matumizi ya injini ya V8 iliyotengenezwa na Google (kwa kuongeza, Microsoft inatengeneza toleo la Node.js kwa injini ya Chakra-Core). Kwa msingi wake, Node.js ni sawa na Perl AnyEvent, Ruby Event Machine, mifumo ya Python Twisted na utekelezaji wa matukio katika Tcl, lakini kitanzi cha tukio katika Node.js kimefichwa kutoka kwa msanidi programu na kinafanana na usindikaji wa tukio katika programu ya wavuti. inayoendesha katika kivinjari.
Chanzo: opennet.ru
