Llwyfan JavaScript ochr y gweinydd Node.js 20.0 ar gael

Mae rhyddhau Node.js 20.0, llwyfan ar gyfer gweithredu cymwysiadau rhwydwaith yn JavaScript, wedi digwydd. Mae Node.js 20.0 wedi'i neilltuo i'r gangen gefnogaeth hir, ond ni fydd y statws hwn yn cael ei neilltuo tan fis Hydref, ar ôl sefydlogi. Bydd Node.js 20.x yn cael ei gefnogi tan Ebrill 30, 2026. Bydd cynnal a chadw cangen flaenorol Node.js 18.x LTS yn para tan fis Ebrill 2025, a'r gangen 16.x LTS flaenorol tan fis Medi 2023. Bydd cangen 14.x LTS yn cael ei chadw ar Ebrill 30, a changen interim Node.js 19.x ar Fehefin 1.

Prif welliannau:

  • Mae'r injan V8 wedi'i diweddaru i fersiwn 11.3, a ddefnyddir yn Chromium 113. O'r newidiadau o'i gymharu â changen Node.js 19, a ddefnyddiodd yr injan Chromium 107, y swyddogaethau String.prototype.isWellFormed a toWellFormed, mae'r Array.prototeip a dulliau TypedArray.prototeip i weithio gyda chopi ar newid gwrthrychau Array a TypedArray, baner "v" yn RegExp, cefnogaeth i newid maint ArrayBuffer a chynyddu maint SharedArrayBuffer, galwad cynffon yn WebAssembly.
  • Cynigir mecanwaith Model Caniatâd Arbrofol sy'n eich galluogi i gyfyngu mynediad at rai adnoddau wrth gyflawni. Mae cefnogaeth Model Caniatâd wedi'i alluogi trwy nodi'r faner "--experimental-permission" wrth redeg. Yn y gweithrediad cychwynnol, cynigiwyd opsiynau i gyfyngu ar fynediad ysgrifennu (--caniatáu-fs-ysgrifennu) a darllen (--caniatáu-fs-darllen) i rannau penodol o'r FS, prosesau plentyn (--caniatáu-fs-proses) , ychwanegion ( --no-addons ) ac edafedd (--allow-worker). Er enghraifft, er mwyn caniatáu ysgrifennu i'r cyfeiriadur /tmp a darllen y ffeil /home/index.js, gallwch nodi: nod --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js mynegai .js

    I wirio mynediad, awgrymir defnyddio'r dull process.permission.has(), er enghraifft, "process.permission.has('fs.write',"/tmp/test").

  • Mae trinwyr modiwlau allanol ECMAScript (ESMs) sy'n cael eu llwytho trwy'r opsiwn "--experimental-loader" bellach yn cael eu gweithredu mewn edefyn ar wahân, wedi'i ynysu o'r prif edefyn, sy'n dileu croestoriad cod cymhwysiad a modiwlau ESM wedi'u llwytho. Yn debyg i borwyr, mae'r dull import.meta.resolve() bellach yn gweithredu'n gydamserol pan gaiff ei alw o'r tu mewn i raglen. Yn un o ganghennau nesaf Node.js, bwriedir symud cefnogaeth llwytho ESM i'r categori o nodweddion sefydlog.
  • Mae'r modiwl nod:test (test_runner), a ddyluniwyd i greu a rhedeg profion JavaScript sy'n dychwelyd canlyniadau mewn fformat TAP (Protocol Test Anything), wedi'i symud i sefydlog.
  • Mae tîm perfformiad ar wahân wedi'i ffurfio, sydd, wrth baratoi ar gyfer y gangen newydd, wedi gweithio i gyflymu gwahanol gydrannau amser rhedeg, gan gynnwys dosrannu URL, fetch() ac EventTarget. Er enghraifft, mae gorbenion cychwyn y EventTarget wedi'i haneru, mae perfformiad y dull URL.canParse() wedi'i wella'n sylweddol, ac mae effeithlonrwydd yr amseryddion wedi'i wella. Yn ogystal, mae rhyddhau parser URL perfformiad uchel - Ada 2.0, a ysgrifennwyd yn C ++, wedi'i gynnwys yn y cyfansoddiad.
  • Mae'r gwaith o ddatblygu nodwedd arbrofol ar gyfer cyflwyno cymwysiadau ar ffurf un ffeil weithredadwy (AAS, Cymwysiadau Gweithredadwy Sengl) wedi parhau. Mae creu gweithredadwy nawr yn gofyn am amnewid blob a gynhyrchir o ffeil ffurfweddu JSON (yn lle amnewid ffeil JavaScript).
  • Gwell cydnawsedd Web Crypto API â gweithrediadau o brosiectau eraill.
  • Ychwanegwyd cefnogaeth swyddogol i Windows ar systemau ARM64.
  • Cefnogaeth barhaus i estyniadau WASI (Rhyngwyneb System WebAssembly) ar gyfer creu cymwysiadau WebCynulliad annibynnol. Wedi dileu'r angen i nodi baner llinell orchymyn arbennig i alluogi cefnogaeth WASI.

Gellir defnyddio platfform Node.js ar gyfer cynnal a chadw gweinyddwyr cymwysiadau Gwe ac ar gyfer creu rhaglenni rhwydwaith cleientiaid a gweinyddwyr rheolaidd. Er mwyn ehangu ymarferoldeb cymwysiadau ar gyfer Node.js, mae casgliad mawr o fodiwlau wedi'u paratoi, lle gallwch ddod o hyd i fodiwlau gyda gweithredu HTTP, SMTP, XMPP, DNS, FTP, IMAP, gweinyddwyr POP3 a chleientiaid, modiwlau ar gyfer integreiddio gyda gwahanol fframweithiau gwe, trinwyr WebSocket ac Ajax, cysylltwyr DBMS (MySQL, PostgreSQL, SQLite, MongoDB), peiriannau templadu, peiriannau CSS, gweithredu algorithmau crypto a systemau awdurdodi (OAuth), parsers XML.

Er mwyn sicrhau bod nifer fawr o geisiadau cyfochrog yn cael eu prosesu, mae Node.js yn defnyddio model gweithredu cod asyncronaidd yn seiliedig ar drin digwyddiadau nad ydynt yn rhwystro a'r diffiniad o drinwyr galwadau yn ôl. Y dulliau a gefnogir ar gyfer cysylltiadau amlblecsio yw epoll, kqueue, /dev/poll, a dewis. Ar gyfer amlblecsio cysylltiad, defnyddir y llyfrgell libuv, sy'n ychwanegiad ar gyfer libev ar systemau Unix ac IOCP ar Windows. Defnyddir y llyfrgell libeio i greu cronfa edau, ac mae c-ares wedi'i integreiddio i gyflawni ymholiadau DNS yn y modd di-flocio. Mae'r holl alwadau system sy'n achosi blocio yn cael eu gweithredu y tu mewn i'r pwll edau ac yna, fel trinwyr signal, yn trosglwyddo canlyniad eu gwaith yn ôl trwy bibell ddienw (pibell). Darperir 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'r Perl AnyEvent, Ruby Event Machine, fframweithiau Python Twisted, a gweithrediad digwyddiad Tcl, ond mae'r ddolen digwyddiad yn Node.js wedi'i chuddio oddi wrth y datblygwr ac mae'n debyg i drin digwyddiadau mewn cymhwysiad gwe sy'n rhedeg mewn porwr. Wrth ysgrifennu ceisiadau ar gyfer nod.js, mae angen i chi ystyried manylion rhaglennu a yrrir gan ddigwyddiadau, er enghraifft, yn lle gwneud "var result = db.query ("select..");" gydag aros am gwblhau'r gwaith a phrosesu canlyniadau wedi hynny, mae Node.js yn defnyddio'r egwyddor o gyflawni asyncronaidd, h.y. mae'r cod yn cael ei drawsnewid yn "db.query ("select..", function (canlyniad) {prosesu canlyniad});", lle bydd rheolaeth yn trosglwyddo'n syth i god pellach, a bydd canlyniad yr ymholiad yn cael ei brosesu wrth i ddata gyrraedd.

Ffynhonnell: opennet.ru

Ychwanegu sylw