Server-Säit JavaScript Plattform Node.js 21.0 verfügbar

Node.js 21.0 gouf verëffentlecht, eng Plattform fir Netzwierkapplikatiounen a JavaScript ze lafen. Den Node.js 21.0 Filial gëtt fir 6 Méint ënnerstëtzt. An den nächsten Deeg gëtt d'Stabiliséierung vun der Node.js 20 Branche ofgeschloss, déi den LTS Status kritt a bis Abrëll 2026 ënnerstëtzt gëtt. Ënnerhalt vun der viregter LTS Filial vun Node.js 18.0 dauert bis September 2025, an d'Joer virdru lescht LTS Filial 16.0 bis Abrëll 2024.

Main Verbesserungen:

  • D'Fetch API gouf stabil deklaréiert, entworf fir Ressourcen iwwer d'Netz ze lueden an d'Schreiwen vum universellen JavaScript Code ze vereinfachen, dee gëeegent ass fir um Server a Client Säiten ze schaffen. D'Ëmsetzung baséiert op de Code vum HTTP/1.1 undici Client an ass sou no wéi méiglech un der ähnlecher API, déi a Browser geliwwert gëtt. D'API enthält d'Fetch () Method an Headers Objeten. Ufro an Äntwert, representéiert den HTTP Header, Ufro an Äntwert. const res = await fetch('https://nodejs.org/api/documentation.json'); wann (res.ok) { const Daten = waarden res.json (); console.log(Daten); }
  • Ënnerstëtzung fir d'WebStreams API, déi Zougang zu Datenstroum iwwer dem Netz kritt, gouf stabiliséiert. D'API mécht et méiglech Är eegen Handler ze addéieren déi mat Daten schaffen wéi d'Informatioun iwwer d'Netz ukomm ass, ouni ze waarden op déi ganz Datei fir erofzelueden. Objekter verfügbar an Node.js enthalen ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, an DecompressionStream.
  • Zousätzlech experimentell Ëmsetzung vum WebSocket Client, kompatibel mat Browser. Fir WebSocket Support z'aktivéieren, gëtt de "--experimental-websocket" Fändel zur Verfügung gestallt.
  • En experimentellen Modus bäigefüügt fir d'Standardimplementatioun vu JavaScript Moduler ESM ze benotzen (ECMAScript Moduler, a Moduler fir Browser benotzt) amplaz CommonJS (spezifesch fir Node.js). D'Ännerung beaflosst net Moduler deenen hir Format explizit iwwer de "Typ" Feld am package.json definéiert ass, spezifizéiert iwwer den "--input-type" Fändel, oder ass offensichtlech wéinst der Dateiextensioun (.mjs fir ESM, .cjs fir CommonJS). Wéi och ëmmer, Moduler déi net explizit als CommonJS definéiert sinn (zum Beispill hunn eng ".js" Extensioun) ginn als ESM Moduler behandelt wann den neie Modus ageschalt ass. Fir nei Modulastellungen z'aktivéieren, gouf de Fändel "--experimentell-default-type" proposéiert.
  • De V8-Motor gouf op d'Versioun 11.8 aktualiséiert, benotzt am Chromium 118, deen elo d'ArrayBuffer.prototype.transfer Method ënnerstëtzt, d'Fäegkeet fir Arrays ze gruppéieren (groupBy Method) a WebAssembly Instruktioune fir Konstanten ze veraarbechten (i32.add, i32.sub, i32.mul, i64 .add, i64.sub an i64.mul).
  • Ënnerstëtzung fir de globalPreload Handler gouf gestoppt, zugonschte vun der Registréierung an Initialiséiere vun Uriff fir Moduler ze konfiguréieren.
  • Eng "Flush" Optioun gouf op d'fs.writeFile Funktioun bäigefüügt fir Daten ze zwéngen fir no all Schreifoperatioun op den Drive ze spülen.
  • Verbesserte Leeschtung vum Code am Zesummenhang mat URL Parsing, Fetch API, Streams, Node: fs, an HTTP.
  • Dobäi global Navigator Objet. Zum Beispill, fir Daten iwwer d'Zuel vun den CPU-Kären ze kréien, kënnt Dir d'Eegeschafte navigator.hardwareConcurrency benotzen.
  • Am "—test" Parameter ass Ënnerstëtzung fir Globmasken bäigefüügt fir Tester ze wielen fir ze lafen (zum Beispill, Dir kënnt "—test **/*.test.js." spezifizéieren).
  • De gebündelte Package Manager npm 10.2.0 an den llhttp 9.1.2 Parser goufen aktualiséiert.
  • Ënnerstëtzung fir Visual Studio 2019 a Versioune vu macOS méi al wéi 11.0 gouf gestoppt.

D'Node.js Plattform kann souwuel fir Serverhaltung vu Webapplikatiounen benotzt ginn a fir regelméisseg Client- a Servernetzprogrammer ze kreéieren. Fir d'Funktionalitéit vun Uwendungen fir Node.js auszebauen, ass eng grouss Sammlung vu Moduler virbereet ginn, an deenen Dir Moduler mat der Ëmsetzung vun HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 Server a Clienten, Moduler fir Integratioun fannt mat verschiddene Webframeworks, WebSocket an Ajax Handler, DBMS Connectoren (MySQL, PostgreSQL, SQLite, MongoDB), Templatemotoren, CSS Motoren, Implementatioune vu Kryptoalgorithmen an Autorisatiounssystemer (OAuth), XML Parser.

Fir d'Veraarbechtung vun enger grousser Zuel vu parallelen Ufroen ze garantéieren, benotzt Node.js en asynchrone Code Ausféierungsmodell baséiert op net-blockéierend Eventhandhabung an der Definitioun vu Callback Handler. Ënnerstëtzt Methoden fir Multiplexing Verbindungen sinn epoll, kqueue, /dev/poll, a wielt. Fir Verbindungsmultiplexing gëtt d'libuv-Bibliothéik benotzt, wat en Add-on fir libev op Unix Systemer an IOCP op Windows ass. D'libeio-Bibliothéik gëtt benotzt fir e Fuedempool ze kreéieren, an c-ares ass integréiert fir DNS Ufroen am net-blockéierende Modus auszeféieren. All Systemappellen, déi d'Blockéierung verursaachen, ginn am Fuedempool ausgefouert an dann, wéi Signalhandteren, d'Resultat vun hirer Aarbecht duerch en onbenannt Päif (Päif) zréckginn. D'Ausféierung vum JavaScript-Code gëtt duerch d'Benotzung vum V8-Motor, dee vu Google entwéckelt gouf, zur Verfügung gestallt (ausserdeem entwéckelt Microsoft eng Versioun vum Node.js mam Chakra-Core-Motor).

Am Kär ass Node.js ähnlech wéi de Perl AnyEvent, Ruby Event Machine, Python Twisted Frameworks, an d'Tcl Event Implementatioun, awer d'Event Loop am Node.js ass vum Entwéckler verstoppt a gläicht Eventhandhabung an enger Webapplikatioun déi leeft am Browser. Wann Dir Applikatiounen fir node.js schreift, musst Dir d'Spezifizitéite vun der Event-Undriff Programméierung berücksichtegen, zum Beispill, anstatt "var result = db.query ("wielt ..");" mat der Erwaardung vun der Aarbecht an der spéiderer Veraarbechtung vun de Resultater, benotzt Node.js de Prinzip vun der asynchroner Ausféierung, d.h. de Code gëtt transforméiert an "db.query ("wielt ..", Funktioun (Resultat) {Resultatveraarbechtung});", an där d'Kontroll direkt op weidere Code passéiert, an d'Ufroresultat gëtt veraarbecht wéi d'Daten ukommen.

Source: opennet.ru

Setzt e Commentaire