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

D'Verëffentlechung vum Node.js 20.0, eng Plattform fir Netzwierkapplikatiounen a JavaScript auszeféieren, ass stattfonnt. Node.js 20.0 gouf fir déi laang Ënnerstëtzungszweig zougewisen, awer dëse Status gëtt net bis Oktober zougewisen, no der Stabiliséierung. Node.js 20.x gëtt ënnerstëtzt bis den 30. Abrëll 2026. Ënnerhalt vun der viregter Node.js 18.x LTS Filial wäert bis Abrëll 2025 daueren, an déi fréier 16.x LTS Filial bis September 2023. D'14.x LTS Branche gëtt den 30. Abrëll ofgebaut, an d'Node.js 19.x Zwëschenzäit den 1. Juni.

Main Verbesserungen:

  • De V8-Motor gouf op d'Versioun 11.3 aktualiséiert, déi am Chromium 113 benotzt gëtt. Vun den Ännerungen am Verglach zum Node.js 19 Branche, deen de Chromium 107-Motor benotzt huet, d'String.prototype.isWellFormed an toWellFormed Funktiounen, den Array.prototype an TypedArray.prototype Methoden fir eng Aarbecht mat Kopie op Ännerung vun Array an TypedArray Objete, "v" Fändel an RegExp, Ënnerstëtzung fir Resizing ArrayBuffer an Erhéijung der Gréisst vun SharedArrayBuffer, Schwäif-Call an WebAssembly.
  • En experimentellen Permission Model Mechanismus gëtt proposéiert deen Iech erlaabt den Zougang zu bestëmmte Ressourcen während der Ausféierung ze beschränken. Ënnerstëtzung fir den Erlaabnismodell gëtt aktivéiert andeems Dir de Fändel "--experimentell-Erlaabnis" spezifizéiert wann Dir leeft. An der initialer Ëmsetzung goufen Optiounen proposéiert fir Schreiwen (-allow-fs-write) a liesen (-allow-fs-read) Zougang zu verschiddenen Deeler vun der FS, Kannerprozesser (-allow-child-process) ze beschränken. , Add-ons (--no-addons) an Threads (-allow-worker). Zum Beispill, fir an den /tmp Verzeichnis ze schreiwen an d'Datei /home/index.js ze liesen, kënnt Dir spezifizéieren: Node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js index .js

    Fir den Zougang z'iwwerpréiwen, gëtt proposéiert d'Method process.permission.has() ze benotzen, zum Beispill "process.permission.has('fs.write',"/tmp/test").

  • Handler fir ECMAScript extern Moduler (ESMs) gelueden iwwer d'Optioun "--experimentell-Loader" ginn elo an engem getrennten Fuedem ausgefouert, isoléiert vum Haaptthread, wat d'Kräizung vum Applikatiounscode a gelueden ESM Moduler eliminéiert. Ähnlech wéi Browser, gëtt d'Methode import.meta.resolve() elo synchron ausgefouert wann se vun enger Applikatioun opgeruff ginn. An enger vun den nächste Filialen vun Node.js ass ESM Laden Ënnerstëtzung geplangt fir an d'Kategorie vu stabile Funktiounen geplënnert ze ginn.
  • Den Node:test (test_runner) Modul, entwéckelt fir JavaScript Tester ze kreéieren an ze lafen, déi Resultater am TAP (Test Anything Protocol) Format zréckginn, gouf op stabil geplënnert.
  • Eng separat Leeschtungsteam gouf geformt, déi als Virbereedung op déi nei Branche geschafft huet fir verschidde Runtime Komponenten ze beschleunegen, dorënner URL Parsing, fetch () an EventTarget. Zum Beispill ass d'Overhead vun der Initialiséierung vum EventTarget halbéiert ginn, d'Performance vun der URL.canParse () Method gouf wesentlech verbessert, an d'Effizienz vun den Timer gouf verbessert. Zousätzlech ass d'Verëffentlechung vun engem High-Performance URL Parser - Ada 2.0, geschriwwen an C ++, an der Zesummesetzung abegraff.
  • D'Entwécklung vun enger experimenteller Feature fir Uwendungen a Form vun enger eenzeger ausführbarer Datei (SEA, Single Executable Applications) ze liwweren ass weidergaang. En ausführbar ze kreéieren erfuerdert elo e Blob ze ersetzen deen aus enger JSON Konfiguratiounsdatei generéiert gëtt (amplaz vun enger JavaScript Datei ze ersetzen).
  • Verbesserte Web Crypto API Kompatibilitéit mat Implementatioune vun anere Projeten.
  • Zousätzlech offiziell Ënnerstëtzung fir Windows op ARM64 Systemer.
  • Weider Ënnerstëtzung fir WASI (WebAssembly System Interface) Extensiounen fir Standalone WebAssembly Uwendungen ze kreéieren. Ewechzehuelen de Besoin e spezielle Kommando Linn Fändel ze uginn fir WASI Ënnerstëtzung ze aktivéieren.

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