Bedienerkant JavaScript-platform Node.js 18.0 beskikbaar

Node.js 18.0 is vrygestel, 'n platform om netwerktoepassings in JavaScript te laat loop. Node.js 18.0 word as 'n langtermyn-ondersteuningstak geklassifiseer, maar hierdie status sal eers in Oktober, na stabilisering, toegeken word. Node.js 18.x sal tot April 2025 ondersteun word. Instandhouding van die vorige LTS-tak van Node.js 16.x sal tot April 2024 duur, en die voorverlede jaar LTS-tak 14.x tot April 2023. Die 12.x LTS-tak sal op 30 April gestaak word, en die Node.js 17.x-vervoertak sal op 1 Junie gestaak word.

Belangrikste verbeterings:

  • Die V8-enjin is opgedateer na weergawe 10.1, wat in Chromium 101 gebruik word. In vergelyking met die 17.9.0-vrystelling van Node.js, is daar nou ondersteuning vir kenmerke soos die findLast- en findLastIndex-metodes om elemente te vind relatief tot die einde van 'n skikking, en die Intl.supportedValuesOf-funksie. Verbeterde Intl.Locale API. Die inisialisering van klasvelde en private metodes is versnel.
  • Die eksperimentele haal() API is by verstek geaktiveer, ontwerp om hulpbronne oor die netwerk te laai. Die implementering is gebaseer op kode van die HTTP/1.1 undici-kliënt en is so na as moontlik aan die soortgelyke API wat in blaaiers verskaf word. Dit sluit ondersteuning in vir die FormData, Headers, Request and Response-koppelvlakke vir die manipulering van HTTP-versoek- en antwoordopskrifte. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = wag op res.json(); console.log(data); }
  • 'n Eksperimentele implementering van die Web Streams API is bygevoeg, wat toegang bied tot datastrome wat oor die netwerk ontvang is. Die API maak dit moontlik om jou eie hanteerders by te voeg om met data te werk soos inligting oor die netwerk aankom, sonder om te wag dat die hele lêer afgelaai word. Voorwerpe wat nou in Node.js beskikbaar is, sluit in ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream en DecompressionStream.
  • Die Blob API is na stabiel geskuif, sodat jy onveranderlike rou data kan inkapsel vir veilige gebruik in verskillende werkersdrade.
  • Die BroadcastChannel API is stabiel gemaak, sodat jy die uitruil van boodskappe in asynchrone modus in die "een sender - baie ontvangers"-formaat kan organiseer.
  • Bygevoeg eksperimentele module node:toets vir die skep en uitvoer van toetse in JavaScript wat resultate in TAP (Test Anything Protocol)-formaat gee.
  • Die generering van gereedgemaakte samestellings vir Red Hat Enterprise Linux (RHEL) 8 en ander verspreidings gebaseer op Glibc 2.28+, insluitend Debian 10 en Ubuntu 20.04, sowel as vir macOS 10.15+ word verskaf. As gevolg van probleme met die V8-enjinbou, is die skepping van 32-bis bouwerk vir Windows tydelik gestaak.
  • Voorsien 'n eksperimentele opsie om 'n Node.js-uitvoerbare te bou met gebruiker-geselekteerde komponente wat by opstart geïnisialiseer is. Om die beginkomponente te definieer, is die "--node-snapshot-main" opsie bygevoeg by die konfigureer bou script, byvoorbeeld, "./configure —node-snapshot-main=marked.js; naam node"

Die Node.js-platform kan gebruik word vir beide bedieneronderhoud van webtoepassings en vir die skep van gereelde 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.

Bron: opennet.ru

Voeg 'n opmerking