Mae Node.js 24.0.0, platfform ar gyfer rhedeg cymwysiadau rhwydwaith yn JavaScript, wedi'i ryddhau. Mae Node.js 24.0 wedi'i aseinio i'r canghennau cymorth hirdymor, ond dim ond ym mis Hydref y bydd y statws hwn yn cael ei aseinio, ar ôl sefydlogi. Bydd Node.js 24.x yn cael ei gefnogi tan Ebrill 30, 2028. Bydd y gangen LTS flaenorol Node.js 22.x yn cael ei chefnogi tan Ebrill 2027, a bydd y gangen LTS flaenorol 20.x yn cael ei chefnogi tan Ebrill 2026. Bydd cynnal a chadw'r gangen LTS 18.x yn dod i ben ar Ebrill 30, 2025, a bydd y gangen ganolradd Node.js 23.x yn dod i ben ar Fehefin 1, 2025.
Prif welliannau:
- Mae'r API AsyncLocalStorage yn defnyddio'r dosbarth AsyncContextFrame yn ddiofyn, sydd wedi'i farcio fel un sefydlog. Mae AsyncContextFrame yn gweithredu mecanwaith mwy effeithlon ar gyfer olrhain cyd-destun anghydamserol, a all wella perfformiad yn sylweddol.
- Mae'r API URLPattern bellach ar gael fel gwrthrych byd-eang y gellir ei ddefnyddio heb fewnforio penodol. Mae URLPattern yn darparu'r gallu i wirio a yw URL yn cyfateb i batrwm penodol, y gellir ei ddefnyddio, er enghraifft, i ddadansoddi dolenni.
- Mae mecanwaith y Model Caniatâd wedi'i wella a'i sefydlogi, gan ganiatáu ichi gyfyngu mynediad i rai adnoddau yn ystod y gweithrediad (er enghraifft, gallwch wahardd creu prosesau plant, cyfyngu mynediad i ysgrifennu neu ddarllen i rai rhannau o'r FS, analluogi ychwanegiadau). Yn lle'r faner arbrofol "--experimental-permission", gellir defnyddio'r faner "--permission" nawr i alluogi'r Model Caniatâd.
- Mae galluoedd y modiwl node:test (test_runner), a gynlluniwyd i greu a rhedeg profion yn JavaScript sy'n dychwelyd canlyniadau ar ffurf TAP (Test Anything Protocol), wedi'u hehangu. Mae'r modiwl nawr yn aros yn awtomatig i brofion nythu gwblhau heb yr angen i ddefnyddio await.
- Mae'r cleient HTTP undici wedi'i ddiweddaru i'r gangen 7.x, sy'n gwella perfformiad ac yn ychwanegu cefnogaeth ar gyfer nodweddion HTTP newydd.
- Mae'r injan V8 wedi'i diweddaru i fersiwn 13.6, a ddefnyddir yn Chromium 136. Mae nodweddion newydd o'i gymharu â'r datganiad Node.js blaenorol yn cynnwys cefnogaeth ar gyfer araeau Float16Array teipiedig, rheoli adnoddau â llaw, y dull RegExp.escape (dianc llinynnau ar gyfer RegExp), pwyntyddion 64-bit (Memory64) yn WebAssembly, a'r dull Error.isError.
- Mae rheolwr pecynnau NPM wedi'i ddiweddaru i fersiwn 11.
- Mae cefnogaeth i gyfieithydd MSVC wedi dod i ben. Ar gyfer cyfieithiad ar y platfform Windows Rhaid i chi ddefnyddio ClangCL.
Gellir defnyddio'r platfform Node.js ar gyfer cefnogaeth ochr y gweinydd i gymwysiadau gwe ac ar gyfer creu rhaglenni rhwydwaith safonol ochr y cleient a'r gweinydd. Er mwyn ehangu ymarferoldeb cymwysiadau Node.js, mae casgliad mawr o fodiwlau wedi'u paratoi, gan gynnwys y rhai sy'n gweithredu gweinyddwyr a chleientiaid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modiwlau ar gyfer integreiddio â gwahanol fframweithiau gwe, trinwyr WebSocket ac Ajax, cysylltwyr i DBMS (MySQL, PostgreSQL, SQLite, MongoDB), peiriannau templedi, peiriannau CSS, gweithrediadau algorithmau cryptograffig a systemau awdurdodi (OAuth), dadansoddwyr XML.
I drin nifer fawr o geisiadau cydamserol, mae Node.js yn defnyddio model gweithredu cod anghydamserol yn seiliedig ar brosesu digwyddiadau di-rhwystro a thrinwyr galwadau'n ôl. Mae dulliau amlblecsio cysylltiadau a gefnogir yn cynnwys epoll, kqueue, /dev/poll, a select. Mae amlblecsio cysylltiadau yn defnyddio'r llyfrgell libuv, sy'n adeiladwaith ar ben libev ar systemau Unix ac IOCP ar WindowsDefnyddir y llyfrgell libeio i greu pwll edau, ac mae c-ares wedi'i integreiddio i gyflawni ymholiadau DNS mewn modd di-flocio. Mae pob galwad system flocio yn cael ei gweithredu o fewn y pwll edau ac yna, fel trinwyr signalau, yn dychwelyd eu canlyniadau trwy bibell ddienw.
Sicrheir gweithrediad cod JavaScript trwy ddefnyddio'r injan V8 a ddatblygwyd gan Google (yn ogystal, mae Microsoft yn datblygu fersiwn o Node.js gyda'r injan Chakra-Core). Yn greiddiol iddo, mae Node.js yn debyg i fframweithiau Perl AnyEvent, Ruby Event Machine, Python Twisted a gweithredu digwyddiadau yn Tcl, ond mae'r ddolen digwyddiad yn Node.js wedi'i chuddio oddi wrth y datblygwr ac mae'n debyg i brosesu digwyddiadau mewn cymhwysiad gwe rhedeg yn y porwr.
Ffynhonnell: opennet.ru
