Bedienerkant JavaScript Node.js 16.0 vrystelling

Node.js 16.0 is vrygestel, 'n platform om netwerktoepassings in JavaScript te laat loop. Node.js 16.0 word as 'n langtermyn-ondersteuningstak geklassifiseer, maar hierdie status sal eers in Oktober, na stabilisering, toegeken word. Node.js 16.0 sal tot April 2023 ondersteun word. Instandhouding van die vorige LTS-tak van Node.js 14.0 sal tot April 2023 duur, en die vorige jaar LTS-tak 12.0 tot April 2022. Ondersteuning vir die 10.0 LTS-tak sal oor 10 dae gestaak word.

Belangrikste verbeterings:

  • Die V8-enjin is opgedateer na weergawe 9.0 (Node.js 15 het vrystelling 8.6 gebruik), wat die implementering van kenmerke soos die "indekse"-eienskap vir gereelde uitdrukkings moontlik maak (sluit 'n skikking in met die begin- en eindposisies van groepe wedstryde) , die Atomics-metode in Node.js 16 .waitAsync (async-weergawe van Atomics.wait), ondersteuning vir die gebruik van die await-sleutelwoord in topvlakmodules. Funksie-oproepe is versnel in situasies waar die aantal argumente wat geslaag is nie ooreenstem met die parameters wat in die funksie gedefinieer is nie.
  • Die Timers Promises API is gestabiliseer, wat 'n alternatiewe stel funksies bied om met timers te werk wat Promise-voorwerpe as uitvoer terugstuur, wat die behoefte om util.promisify( te gebruik) uitskakel. invoer {setTimeout } vanaf 'timers/promises'; async funksie run () { await setTimeout (5000); console.log('Hallo, Wêreld!'); } hardloop();
  • 'n Eksperimentele implementering van die Web Crypto API is bygevoeg, wat ontwerp is om basiese kriptografiese bewerkings aan die kant van webtoepassings uit te voer, soos die manipulering van kriptografiese hashes, generering en verifikasie van digitale handtekeninge, enkodering en dekodering van data met behulp van verskeie enkripsiemetodes, en die generering van kriptografies veilige ewekansige getalle. Die API bied ook funksies vir die generering en bestuur van sleutels.
  • N-API (API vir die ontwikkeling van byvoegings) is opgedateer na weergawe 8.
  • Die oorgang na die nuwe vrystelling van die pakketbestuurder NPM 7.10 is gemaak.
  • Het die implementering van die AbortController-klas gestabiliseer, wat gebaseer is op die AbortController Web API en laat seine toe om in geselekteerde Promise-gebaseerde API's te kanselleer.
  • Ondersteuning vir die derde weergawe van die Bronkaartformaat, wat gebruik word om gegenereerde, verwerkte of verpakte modules met die oorspronklike bronkode te vergelyk, is gestabiliseer.
  • Vir verenigbaarheid met verouderde Web API's, is die buffer.atob(data) en buffer.btoa(data) metodes bygevoeg.
  • Die vorming van samestellings vir nuwe Apple-toestelle toegerus met die M1 ARM-skyfie het begin.
  • Op die Linux-platform is die samestellerweergawe-vereistes verhoog na GCC 8.3.

Onthou dat die Node.js-platform gebruik kan word vir beide bedieneronderhoud van webtoepassings en vir die skep van gewone kliënt- en bedienernetwerkprogramme. Om die funksionaliteit van toepassings vir Node.js uit te brei, is 'n groot versameling modules voorberei, waarin u modules kan vind met die implementering van HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3-bedieners en -kliënte, modules vir integrasie met verskeie webraamwerke, WebSocket- en Ajax-hanteerders, DBMS-koppelaars (MySQL, PostgreSQL, SQLite, MongoDB), sjabloonenjins, CSS-enjins, implementering van kripto-algoritmes en magtigingstelsels (OAuth), XML-ontleders.

Om die verwerking van 'n groot aantal parallelle versoeke te verseker, gebruik Node.js 'n asynchrone kode-uitvoeringsmodel gebaseer op nie-blokkerende gebeurtenishantering en die definisie van terugbelhanteerders. Ondersteunde metodes vir multipleksing van verbindings is epoll, kqueue, /dev/poll, en select. Vir verbindingsmultipleksing word die libuv-biblioteek gebruik, wat 'n byvoeging is vir libev op Unix-stelsels en IOCP op Windows. Die libeio-biblioteek word gebruik om 'n draadpoel te skep, en c-ares is geïntegreer om DNS-navrae in nie-blokkerende modus uit te voer. Alle stelseloproepe wat blokkering veroorsaak, word binne die draadpoel uitgevoer en dra dan, soos seinhanteerders, die resultaat van hul werk terug deur 'n naamlose pyp (pyp). Die uitvoering van JavaScript-kode word verskaf deur die gebruik van die V8-enjin wat deur Google ontwikkel is (daarby ontwikkel Microsoft 'n weergawe van Node.js met die Chakra-Core-enjin).

In sy kern is Node.js soortgelyk aan die Perl AnyEvent, Ruby Event Machine, Python Twisted-raamwerke en die Tcl-gebeurtenisimplementering, maar die gebeurtenislus in Node.js is weggesteek vir die ontwikkelaar en lyk soos gebeurtenishantering in 'n webtoepassing wat loop in blaaier. Wanneer u toepassings vir node.js skryf, moet u die besonderhede van gebeurtenisgedrewe programmering oorweeg, byvoorbeeld, in plaas daarvan om "var result = db.query("select..");" te doen. met wag vir voltooiing van werk en daaropvolgende verwerking van resultate, gebruik Node.js die beginsel van asynchrone uitvoering, m.a.w. die kode word getransformeer na "db.query("selekteer..", funksie (resultaat) {resultaatverwerking});", waarin beheer onmiddellik na verdere kode sal oorgaan, en die navraagresultaat sal verwerk word soos data aankom.

Daarbenewens kan opgemerk word dat die Deno-maatskappy, gestig deur die skepper van Node.js om die volgende generasie Deno-platform te ontwikkel, $4.9 miljoen aan beleggings ontvang het. In sy doel is Deno soortgelyk aan Node.js, maar dit probeer om die konseptuele foute wat in die Node.js-argitektuur gemaak word uit te skakel en gebruikers van 'n veiliger omgewing te voorsien. Daar word kennis geneem dat Deno se besigheidsoplossings op heeltemal oop produkte gebou sal word, en die Open Core-model met afsonderlike betaalde funksionaliteit word as onaanvaarbaar vir die Deno-platform beskou.

Bron: opennet.ru

Voeg 'n opmerking