Rhyddhau platfform JavaScript ochr y gweinydd Node.js 13.0

Ar gael rhyddhau Nôd.js 13.0, llwyfannau ar gyfer rhedeg cymwysiadau rhwydwaith yn JavaScript. Ar yr un pryd, mae sefydlogi cangen flaenorol Node.js 12.x wedi'i gwblhau, sydd wedi'i drosglwyddo i'r categori o ddatganiadau cymorth hirdymor, y mae diweddariadau ar eu cyfer yn cael eu rhyddhau am 4 blynedd. Bydd cefnogaeth i'r gangen LTS flaenorol o Node.js 10.0 yn para tan fis Ebrill 2021, a chefnogaeth i'r gangen LTS olaf 8.0 tan fis Ionawr 2020.

Y prif gwelliannau:

  • Peiriant V8 wedi'i ddiweddaru i fersiwn 7.8, sy'n defnyddio technegau optimeiddio perfformiad newydd, yn gwella dinistrio gwrthrychau, yn lleihau'r defnydd o gof, ac yn lleihau'r amser paratoi ar gyfer gweithredu WebAssembly;
  • Mae cefnogaeth lawn ar gyfer rhyngwladoli ac Unicode seiliedig ar lyfrgell wedi'i alluogi yn ddiofyn ICU (Cydrannau Rhyngwladol ar gyfer Unicode), sy'n caniatáu i ddatblygwyr ysgrifennu cod cefnogol gweithio gyda gwahanol ieithoedd a locales. Mae'r modiwl llawn-icu bellach wedi'i osod yn ddiofyn;
  • API sefydlogi Trywyddau Gweithwyr, caniatáu creu dolenni digwyddiadau aml-edau. Mae'r gweithrediad yn seiliedig ar y modiwl gweithiwr_threads, sy'n eich galluogi i redeg cod JavaScript mewn edafedd cyfochrog lluosog. Mae cefnogaeth sefydlog i'r API Workers Threads hefyd wedi'i ôl-borthi i gangen LTS o Node.js 12.x;
  • Mae'r gofynion ar gyfer platfformau wedi'u cynyddu. Ar gyfer cynulliad nawr yn ofynnol o leiaf macOS 10.11 (angen Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Gwell cefnogaeth i Python 3. Os oes gan y system Python 2 a Python 3, mae Python 2 yn dal i gael ei ddefnyddio, ond mae'r gallu i adeiladu pan mai dim ond Python 3 sydd wedi'i osod ar y system wedi'i ychwanegu;
  • Mae hen weithrediad y parser HTTP (“—http-parser=legacy”) wedi’i ddileu. Galwadau ac eiddo wedi'u dileu neu eu hanrhydeddu FSWatcher.prototype.start(), ChildProcess._channel, dull agored() mewn gwrthrychau ReadStream a WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Yn dilyn daeth allan diweddariad 13.0.1, a oedd yn gosod nifer o fygiau'n gyflym. Yn benodol, mae'r broblem gyda npm 6.12.0 yn arddangos rhybudd am ddefnyddio fersiwn heb ei gefnogi wedi'i datrys.

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