Rhyddhau platfform JavaScript ochr y gweinydd Node.js 14.0
cymryd lle rhyddhau Nôd.js 14.0, llwyfannau ar gyfer rhedeg cymwysiadau rhwydwaith yn JavaScript. Mae Node.js 14.0 yn gangen cymorth hirdymor, ond dim ond ym mis Hydref y bydd y statws hwn yn cael ei neilltuo, ar ôl sefydlogi. Bydd Node.js 14.0 yn cael ei gefnogi cael ei gyflawni tan Ebrill 2023. Bydd cynnal a chadw cangen flaenorol LTS o Node.js 12.0 yn para tan fis Ebrill 2022, a'r flwyddyn cyn y gangen LTS ddiwethaf 10.0 tan fis Ebrill 2021. Bydd cefnogaeth i gangen lwyfannu 13.x yn dod i ben ym mis Mehefin eleni.
Mae'r gallu i gynhyrchu ar y hedfan neu pan fydd digwyddiadau penodol yn digwydd wedi'i sefydlogi adroddiadau diagnostig, sy'n arddangos digwyddiadau sy'n helpu i wneud diagnosis o broblemau megis damweiniau, diraddio perfformiad, gollyngiadau cof, llwyth CPU trwm, allbwn gwall annisgwyl, ac ati.
Ychwanegwyd cefnogaeth API arbrofol Storio Lleol Async gyda gweithrediad y dosbarth AsyncLocalStorage, y gellir ei ddefnyddio i greu cyflwr asyncronaidd gyda thrinwyr yn seiliedig ar alwadau galw yn ôl ac addewidion. Mae AsyncLocalStorage yn caniatáu i chi storio data tra bod cais gwe yn cael ei brosesu, sy'n atgoffa rhywun o storfa edau-local mewn ieithoedd eraill.
Wedi tynnu'r neges rhybuddio am nodwedd arbrofol wrth lwytho modiwlauECMAScript 6 cysylltu ac allforio gan ddefnyddio datganiadau mewnforio ac allforio. Ar yr un pryd, mae gweithredu modiwlau ESM ei hun yn parhau i fod yn arbrofol.
Peiriant V8 wedi'i ddiweddaru i fersiwn 8.1 (1, 2, 3), sy'n cynnwys optimizations perfformiad newydd a nodweddion megis y gweithredwr concatenation rhesymegol newydd "??" (yn dychwelyd yr operand dde os yw'r operand chwith yn NULL neu heb ei ddiffinio, ac i'r gwrthwyneb), y gweithredwr "?." ar gyfer gwiriad un-amser o'r gadwyn gyfan o eiddo neu alwadau (er enghraifft, “db?.user?.name?.length” heb wiriadau rhagarweiniol), dull Intl.DisplayName ar gyfer cael enwau lleol, ac ati.
Cynhaliwyd adolygiad o'r API Ffrydiau, gyda'r nod o wella cysondeb yr APIs Ffrydiau a dileu gwahaniaethau yn ymddygiad rhannau sylfaenol Node.js. Er enghraifft, mae ymddygiad http.OutgoingMessage yn agos at stream.Writable, ac mae net.Socket yn debyg i stream.Duplex. Mae'r opsiwn autoDestroy wedi'i osod i "wir" yn ddiofyn, sy'n golygu galw "_destroy" ar ôl ei gwblhau.
Ychwanegwyd cefnogaeth API arbrofol Wasi (Rhyngwyneb System WebCynulliad), darparu rhyngwynebau meddalwedd ar gyfer rhyngweithio uniongyrchol â'r system weithredu (POSIX API ar gyfer gweithio gyda ffeiliau, socedi, ac ati).
Gadewch inni gofio y gellir defnyddio platfform Node.js i gefnogi cymwysiadau Gwe ar ochr y gweinydd ac ar gyfer creu rhaglenni rhwydwaith cleientiaid a gweinyddwyr cyffredin. Er mwyn ehangu ymarferoldeb ceisiadau ar gyfer Node.js, mae nifer fawr o casgliad o fodiwlau, lle gallwch ddod o hyd i fodiwlau gyda gweithredu gweinyddwyr a chleientiaid HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modiwlau i'w hintegreiddio â gwahanol fframweithiau gwe, trinwyr WebSocket ac Ajax, cysylltwyr â DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), peiriannau templed, peiriannau CSS, gweithredu algorithmau cryptograffig a systemau awdurdodi (OAuth), parsers XML.
Er mwyn ymdrin â nifer fawr o geisiadau cyfochrog, mae Node.js yn defnyddio model gweithredu cod asyncronaidd yn seiliedig ar brosesu digwyddiadau nad yw'n rhwystro a diffinio trinwyr galwadau yn ôl. Mae dulliau a gefnogir ar gyfer cysylltiadau amlblecsio yn cynnwys epoll, kqueue, /dev/poll, a dewis. Defnyddir y llyfrgell i amlblecsu cysylltiadau libuv, sy'n uwch-strwythur drosodd libev ar systemau Unix a thros IOCP ar Windows. Defnyddir llyfrgell i greu cronfa edau libeio, ar gyfer perfformio ymholiadau DNS yn y modd di-blocio ei integreiddio c-ares. Mae'r holl alwadau system sy'n achosi blocio yn cael eu gweithredu o fewn y pwll edau ac yna, fel trinwyr signal, yn trosglwyddo canlyniad eu gwaith yn ôl trwy bibell ddienw. Sicrheir gweithrediad cod JavaScript trwy ddefnyddio injan a ddatblygwyd gan Google V8 (Yn ogystal, mae Microsoft yn datblygu fersiwn o Node.js gyda'r injan Chakra-Core).
Yn ei graidd, mae Node.js yn debyg i fframweithiau Perl Unrhyw Ddigwyddiad, Peiriant Digwyddiad Ruby, Python Twisted и gweithredu digwyddiadau yn Tcl, ond mae'r ddolen digwyddiad yn Node.js wedi'i chuddio rhag y datblygwr ac mae'n debyg i drin digwyddiadau mewn cymhwysiad gwe sy'n rhedeg mewn porwr. Wrth ysgrifennu ceisiadau am node.js, mae angen 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'r 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..”, swyddogaeth (canlyniad) {prosesu canlyniad});”, lle bydd rheolaeth yn trosglwyddo ar unwaith i god pellach, a bydd canlyniad yr ymholiad yn cael ei brosesu wrth i ddata gyrraedd. .