Servilflanka JavaScript-platformo Node.js 19.0 havebla

Node.js 19.0, platformo por ruli retajn aplikojn en JavaScript, estis publikigita. Node.js 19 estas regula subtena branĉo kun ĝisdatigoj disponeblaj ĝis junio 2023. En la venontaj tagoj, la stabiligo de la branĉo Node.js 18 estos kompletigita, kiu ricevos LTS-statuson kaj estos subtenata ĝis aprilo 2025. Prizorgado de la antaŭa LTS-filio de Node.js 16.0 daŭros ĝis septembro 2023, kaj la jaron antaŭ la lasta LTS-filio 14.0 ĝis aprilo 2023.

Ĉefaj plibonigoj:

  • La motoro V8 estis ĝisdatigita al versio 10.7, uzata en Chromium 107. Inter la ŝanĝoj en la motoro kompare kun la branĉo Node.js 18, oni rimarkas la efektivigon de la tria versio de la API Intl.NumberFormat, kiu aldonas novajn funkciojn formatRange. (), formatRangeToParts() kaj selectRange(), grupigo de aroj, novaj opcioj por rondigo kaj fiksado de precizeco, la kapablo interpreti ŝnurojn kiel dekumajn nombrojn. La inkluzivitaj dependecoj llhttp 8.1.0 kaj npm 8.19.2 ankaŭ estis ĝisdatigitaj.
  • Eksperimenta "node -watch" komando estis proponita kun la efektivigo de horloĝa reĝimo kiu certigas ke la procezo estas rekomencita kiam la importita dosiero ŝanĝiĝas (ekzemple, se "node -watch index.js" estas efektivigita, la procezo estos aŭtomate rekomenciĝis kiam index.js ŝanĝiĝas).
  • Por ĉiuj elirantaj HTTP/HTTPS-konektoj, subteno por la HTTP 1.1 Keep-Alive-mekanismo estas ebligita, kiu lasas la konekton malfermita dum certa tempo por procesi plurajn HTTP-petojn ene de la sama konekto. Keep-Alive estas atendita plibonigos trairon kaj rendimenton. Defaŭlte, la konekto malferma tempodaŭro estas agordita al 5 sekundoj. Subteno por analizado de la HTTP-kapo Keep-Alive en servilaj respondoj estis aldonita al la HTTP-klienta efektivigo, kaj aŭtomata malkonekto de neaktivaj klientoj uzantaj Keep-Alive estis aldonita al la Node.js HTTP-servila efektivigo.
  • La WebCrypto API estis translokigita al la stabila kategorio, kun la escepto de funkcioj uzantaj la Ed25519, Ed448, X25519 kaj X448-algoritmoj. Por aliri la WebCrypto-modulon vi nun povas uzi globalThis.crypto aŭ require('node:crypto').webcrypto.
  • Subteno por la spuriloj de DTrace, SystemTap kaj ETW (Event Tracing por Vindozo) estis forigita, kies prizorgado estis konsiderata malkonvena pro la komplekseco de konservi ĝin ĝisdatigita en foresto de taŭga subtena plano.

La platformo Node.js povas esti uzata kaj por servila prizorgado de Retaj aplikaĵoj kaj por krei regulajn programojn pri kliento kaj servilo. Por vastigi la funkciecon de aplikoj por Node.js, granda kolekto de moduloj estis preparita, en kiuj vi povas trovi modulojn kun la efektivigo de HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3-serviloj kaj klientoj, moduloj por integriĝo. kun diversaj retkadroj, WebSocket kaj Ajax-traktiloj, DBMS-konektiloj (MySQL, PostgreSQL, SQLite, MongoDB), ŝablonaj motoroj, CSS-motoroj, efektivigoj de kriptaj algoritmoj kaj rajtigaj sistemoj (OAuth), XML-analiziloj.

Por certigi la prilaboradon de granda nombro da paralelaj petoj, Node.js uzas nesinkronan kodan ekzekutmodelon bazitan sur ne-bloka evento-traktado kaj la difino de revokaj pritraktiloj. Subtenataj metodoj por multipleksaj konektoj estas epoll, kqueue, /dev/poll, kaj select. Por koneksa multipleksado, la biblioteko libuv estas uzata, kiu estas aldonaĵo por libev ĉe Unikso-sistemoj kaj IOCP ĉe Vindozo. La biblioteko libeio estas uzata por krei fadenan naĝejon, kaj c-ares estas integrita por fari DNS-demandojn en ne-bloka reĝimo. Ĉiuj sistemvokoj kiuj kaŭzas blokadon estas ekzekutitaj ene de la fadena naĝejo kaj tiam, kiel signaltraktantoj, translokigas la rezulton de sia laboro reen tra nenomita pipo (pipo). La ekzekuto de JavaScript-kodo estas provizita per la uzo de la V8-motoro evoluigita de Guglo (krome, Microsoft disvolvas version de Node.js kun la Chakra-Core-motoro).

En ĝia kerno, Node.js estas simila al la Perl AnyEvent, Ruby Event Machine, Python Twisted kadroj, kaj la Tcl-okazaĵefektivigo, sed la eventa buklo en Node.js estas kaŝita de la programisto kaj similas evento-traktadon en TTT-aplikaĵo funkcianta. en retumilo. Kiam vi verkas aplikaĵojn por node.js, vi devas konsideri la specifaĵojn de okazaĵa programado, ekzemple, anstataŭ fari "var result = db.query ("select..");" kun atendado de fino de laboro kaj posta prilaborado de rezultoj, Node.js uzas la principon de nesinkrona ekzekuto, t.e. la kodo estas transformita en "db.query ("elekto..", funkcio (rezulto) {rezulta prilaborado});", en kiu kontrolo tuj pasos al plia kodo, kaj la demandrezulto estos prilaborita kiam datumoj alvenas.

fonto: opennet.ru

Aldoni komenton