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.

Y prif gwelliannau:

  • 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 modiwlau ECMAScript 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).
  • Mwy o ofynion ar gyfer fersiynau lleiaf posibl casglwyr a llwyfannau: macOS 10.13 (High Sierra), GCC 6, Windows mwy newydd 7/2008R2.

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. .

Ffynhonnell: opennet.ru

Ychwanegu sylw