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

Node.js 18.0 gouf verëffentlecht, eng Plattform fir Netzwierkapplikatiounen a JavaScript ze lafen. Node.js 18.0 ass als laangfristeg Ënnerstëtzungszweig klasséiert, awer dëse Status gëtt nëmmen am Oktober, no der Stabiliséierung, zougewisen. Node.js 18.x gëtt bis Abrëll 2025 ënnerstëtzt. Ënnerhalt vun der viregter LTS Branche vun Node.js 16.x dauert bis Abrëll 2024, an d'Joer virdrun LTS Branche 14.x bis Abrëll 2023. D'12.x LTS Branche gëtt den 30. Abrëll gestoppt, an d'Node.js 17.x Staging Branche gëtt den 1. Juni gestoppt.

Main Verbesserungen:

  • De V8-Motor gouf op d'Versioun 10.1 aktualiséiert, déi am Chromium 101 benotzt gëtt. Am Verglach mat der 17.9.0 Verëffentlechung vun Node.js gëtt et elo Ënnerstëtzung fir Features wéi d'findLast a findLastIndex Methoden fir Elementer relativ zum Enn vun ze fannen. eng Array, an d'Intl.supportedValuesOf Funktioun. Verbesserte Intl.Locale API. D'Initialiséierung vu Klassefelder a private Methoden gouf beschleunegt.
  • D'experimentell fetch () API ass als Standard aktivéiert, entworf fir Ressourcen iwwer d'Netz ze lueden. D'Ëmsetzung baséiert op 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ëst beinhalt Ënnerstëtzung fir FormData, Header, Ufro an Äntwert Interfaces fir d'Manipulatioun vun HTTP Ufro an Äntwert Header. const res = await fetch('https://nodejs.org/api/documentation.json'); wann (res.ok) { const Daten = waarden res.json (); console.log(daten); }
  • Eng experimentell Implementatioun vun der Web Streams API gouf bäigefüügt, déi Zougang zu Datenstroum iwwer dem Netz kritt. D'API mécht et méiglech Är eegen Handler ze addéieren fir mat Daten ze schaffen wéi d'Informatioun iwwer d'Netz ukomm ass, ouni ze waarden op déi ganz Datei fir erofzelueden. Objekter déi elo an Node.js verfügbar sinn enthalen ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, an DecompressionStream.
  • D'Blob API gouf op stabil geplënnert, wat Iech erlaabt onverännerbar Matière Daten fir sécher Notzung a verschiddenen Aarbechter thread ze kapsuléieren.
  • D'BroadcastChannel API gouf stabil gemaach, wat Iech erlaabt den Austausch vu Messagen am asynchrone Modus am Format "een Sender - vill Empfänger" ze organiséieren.
  • Zousätzlech experimentell Modul Node: Test fir Tester a JavaScript ze kreéieren an ze lafen déi Resultater am TAP (Test Anything Protocol) Format zréckginn.
  • D'Generatioun vu fäerdege Versammlungen fir Red Hat Enterprise Linux (RHEL) 8 an aner Verdeelunge baséiert op Glibc 2.28+, dorënner Debian 10 an Ubuntu 20.04, souwéi fir macOS 10.15+ gëtt zur Verfügung gestallt. Wéinst Probleemer mam V8-Motorbau ass d'Schafung vun 32-Bit Builds fir Windows temporär gestoppt.
  • Eng experimentell Optioun zur Verfügung gestallt fir en Node.js ausféierbar ze bauen mat Benotzer-ausgewielt Komponenten initialiséiert beim Startup. Fir d'Startkomponenten ze definéieren, ass d'Optioun "--node-snapshot-main" am Konfiguratiouns-Build-Skript bäigefüügt, zum Beispill, "./configure -node-snapshot-main=marked.js; Numm Node"

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