Bedienerkant JavaScript Node.js 14.0 vrystelling

plaasgevind vrylating Node.js 14.0,platforms om netwerktoepassings in JavaScript te laat loop. Node.js 14.0 is 'n langtermyn-ondersteuningstak, maar hierdie status sal eers in Oktober, na stabilisering, toegeken word. Node.js 14.0 sal ondersteun word uitgevoer word tot April 2023. Instandhouding van die vorige LTS-tak van Node.js 12.0 sal tot April 2022 duur, en die vorige jaar LTS-tak 10.0 tot April 2021. Ondersteuning vir die 13.x-staging-tak sal in Junie vanjaar eindig.

Die belangrikste verbeterings:

  • Die vermoë om op die vlieg of by die voorkoms van sekere gebeurtenisse te genereer is gestabiliseer diagnostiese verslae, wat gebeure vertoon wat help om probleme te diagnoseer soos ineenstortings, prestasieagteruitgang, geheuelekkasies, swaar SVE-lading, onverwagte foutuitset, ens.
  • Bygevoeg eksperimentele API ondersteuning Asynkroniseer plaaslike berging met die implementering van die AsyncLocalStorage-klas, wat gebruik kan word om asinchrone toestand met hanteerders te skep gebaseer op terugbeloproepe en beloftes. AsyncLocalStorage laat jou toe om data te stoor terwyl 'n webversoek verwerk word, wat herinner aan draad-plaaslike berging in ander tale.
  • Verwyder waarskuwingsboodskap oor eksperimentele kenmerk tydens laai modules ECMAScript 6 gekoppel en uitgevoer met behulp van invoer- en uitvoerstate. Terselfdertyd bly die implementering van ESM-modules self eksperimenteel.
  • V8-enjin opgedateer na weergawe 8.1 (1, 2, 3), wat nuwe werkverrigtingoptimalisasies en kenmerke insluit soos die nuwe logiese aaneenskakelingsoperateur "??" (gee die regteroperand as die linkeroperand NULL of ongedefinieerd is, en omgekeerd), die "?."-operateur vir 'n eenmalige kontrolering van die hele ketting eiendomme of oproepe (byvoorbeeld, "db?.gebruiker?.naam?.length" sonder voorlopige kontrole), die Intl.DisplayName-metode vir die verkryging van gelokaliseerde name, ens.
  • 'n Hersiening van die Streams API is uitgevoer, wat daarop gemik is om die konsekwentheid van die Streams API's te verbeter en verskille in die gedrag van die basiese dele van Node.js uit te skakel. Byvoorbeeld, die gedrag van http.OutgoingMessage is naby aan stream.Writable, en net.Socket is soortgelyk aan stream.Duplex. Die outoDestroy-opsie is by verstek op "true" gestel, wat beteken dat "_destroy" na voltooiing geroep word.
  • Bygevoeg eksperimentele API ondersteuning WAS EK (WebAssembly-stelselkoppelvlak), verskaffing van sagteware-koppelvlakke vir direkte interaksie met die bedryfstelsel (POSIX API vir werk met lêers, voetstukke, ens.).
  • Verhoogde vereistes vir minimale weergawes samestellers en platforms: macOS 10.13 (High Sierra), GCC 6, Windows nuwer 7/2008R2.

Laat ons onthou dat die Node.js-platform gebruik kan word vir beide bediener-kant ondersteuning van webtoepassings en vir die skep van gewone kliënt- en bedienernetwerkprogramme. Om die funksionaliteit van toepassings vir Node.js uit te brei, 'n groot aantal versameling van modules, waarin jy modules kan vind met die implementering van bedieners en kliënte HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules vir integrasie met verskeie webraamwerke, WebSocket en Ajax hanteerders, verbindings na DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), sjabloonenjins, CSS-enjins, implementering van kriptografiese algoritmes en magtigingstelsels (OAuth), XML-ontleders.

Om groot getalle parallelle versoeke te hanteer, gebruik Node.js 'n asynchrone kode-uitvoeringsmodel gebaseer op nie-blokkerende gebeurtenisverwerking en die definisie van terugbelhanteerders. Ondersteunde metodes vir multipleksing van verbindings sluit in epoll, kqueue, /dev/poll, en kies. Die biblioteek word gebruik om verbindings te vermenigvuldig libuv, wat 'n bobou verby is libev op Unix-stelsels en oor IOCP op Windows. 'n Biblioteek word gebruik om 'n draadpoel te skep libeio, vir die uitvoering van DNS-navrae in nie-blokkerende modus is geïntegreer c-ares. Alle stelseloproepe wat blokkering veroorsaak, word binne die draadpoel uitgevoer en stuur dan, soos seinhanteerders, die resultaat van hul werk terug deur 'n naamlose pyp. Die uitvoering van JavaScript-kode word verseker deur die gebruik van 'n enjin wat deur Google ontwikkel is V8 (Boonop ontwikkel Microsoft 'n weergawe van Node.js met die Chakra-Core-enjin).

In sy kern is Node.js soortgelyk aan raamwerke Perl AnyEvent, Ruby Event Machine, Python gedraai и implementering gebeure in Tcl, maar die gebeurtenislus in Node.js is vir die ontwikkelaar versteek en lyk soos gebeurtenishantering in 'n webtoepassing wat in 'n blaaier loop. Wanneer u toepassings vir node.js skryf, is dit nodig om die besonderhede van gebeurtenisgedrewe programmering in ag te neem, byvoorbeeld, in plaas daarvan om "var result = db.query("select..");" met wag vir die voltooiing van werk en daaropvolgende verwerking van die resultate, gebruik Node.js die beginsel van asynchrone uitvoering, d.w.s. die kode word getransformeer na “db.query(“kies..”, funksie (resultaat) {resultaatverwerking});”, waarin beheer onmiddellik na verdere kode sal oorgaan, en die navraagresultaat sal verwerk word soos data aankom. .

Bron: opennet.ru

Voeg 'n opmerking