Verëffentlechung vun der Server-Säit JavaScript Plattform Node.js 14.0

stattfonnt huet Fräisetzung Node.js 14.0, Plattforme fir Netzwierkapplikatiounen a JavaScript ze lafen. Node.js 14.0 ass eng laangfristeg Ënnerstëtzungszweig, awer dëse Status gëtt nëmmen am Oktober zougewisen, no der Stabiliséierung. Node.js 14.0 gëtt ënnerstëtzt duerchgefouert ginn bis Abrëll 2023. Ënnerhalt vun der viregter LTS Filial vun Node.js 12.0 dauert bis Abrëll 2022, an d'Joer virdru lescht LTS Filial 10.0 bis Abrëll 2021. Ënnerstëtzung fir d'13.x Staging Branche wäert am Juni vun dësem Joer ophalen.

Haaptstrooss Verbesserungen:

  • D'Kapazitéit fir op der Flucht ze generéieren oder beim Optriede vu bestëmmten Eventer gouf stabiliséiert diagnostesch Berichter, déi Eventer weisen, déi hëllefen, Probleemer ze diagnostizéieren, wéi Crashen, Leeschtungsverschlechterung, Gedächtnislecks, schwéier CPU Belaaschtung, onerwaart Feelerausgang, etc.
  • Zousätzlech experimentell API Ënnerstëtzung Async Lokal Späichere mat der Ëmsetzung vun der Klass AsyncLocalStorage, déi benotzt ka ginn fir asynchrone Staat mat Handler ze kreéieren baséiert op Callback-Uriff a Verspriechen. AsyncLocalStorage erlaabt Iech Daten ze späicheren wärend eng Webufro veraarbecht gëtt, erënnert un thread-lokal Späicheren an anere Sproochen.
  • Geläscht Warnungsmeldung iwwer experimentell Feature beim Luede Moduler ECMAScript 6 verbonnen an exportéiert mat Import an Export Aussoen. Zur selwechter Zäit bleift d'Ëmsetzung vun ESM Moduler selwer experimentell.
  • V8 Motor zu Versioun aktualiséiert 8.1 (1, 2, 3), déi nei Leeschtungsoptimiséierungen a Features enthält wéi den neie logesche Koncatenatiounsbedreiwer "??" (gëtt de richtege Operand zréck wann de lénksen Operand NULL oder ondefinéiert ass, a vice versa), den "?." Bedreiwer fir eng eemoleg Iwwerpréiwung vun der ganzer Kette vun Eegeschafte oder Uriff (zum Beispill, "db?. Benotzer?. Numm?. Length" ouni virleefeg Kontrollen), der Intl.DisplayName Method fir lokaliséiert Nimm ze kréien, etc.
  • Eng Revisioun vun der Streams API gouf duerchgefouert, fir d'Konsistenz vun de Streams APIs ze verbesseren an Differenzen am Verhalen vun de Basisdeeler vun Node.js ze eliminéieren. Zum Beispill ass d'Behuele vun http.OutgoingMessage no bei Stream.Writable, an net.Socket ass ähnlech wéi Stream.Duplex. D'AutoDestroy Optioun ass als Standard op "richteg" gesat, dat heescht "_destroy" ruffen nom Ofschloss.
  • Zousätzlech experimentell API Ënnerstëtzung WASI (WebAssembly System Interface), Software Interfaces fir direkt Interaktioun mam Betribssystem ubidden (POSIX API fir mat Dateien, Sockets, etc.) ze schaffen.
  • Geklomm Ufuerderunge fir minimal Versiounen Compilers a Plattformen: macOS 10.13 (High Sierra), GCC 6, Windows méi nei 7/2008R2.

Loosst eis drun erënneren datt d'Node.js Plattform souwuel fir Server-Säit Ënnerstëtzung vu Webapplikatiounen benotzt ka ginn a fir gewéinlech Client- a Servernetzprogrammer ze kreéieren. Fir d'Funktionalitéit vun Uwendungen fir Node.js expandéieren, eng grouss Zuel vun Sammlung vu Moduler, an deenen Dir Moduler mat der Ëmsetzung vu Serveren a Clienten fannt HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, Moduler fir Integratioun mat verschiddene Webframeworks, WebSocket an Ajax Handler, Connectoren op DBMS (MySQL, PostgreSQL, SQLite) , MongoDB ), Schablounmotoren, CSS Motoren, Implementatioune vu kryptographesche Algorithmen an Autorisatiounssystemer (OAuth), XML Parser.

Fir eng grouss Zuel vu parallele Ufroen ze handhaben, benotzt Node.js en asynchrone Code Ausféierungsmodell baséiert op net-blockéierend Eventveraarbechtung an definéieren Callback Handler. Ënnerstëtzt Methoden fir Multiplexing Verbindungen enthalen epoll, kqueue, /dev/poll, a wielt. D'Bibliothéik gëtt benotzt fir Verbindungen ze multiplexéieren libv, déi eng Iwwerbau eriwwer ass libev op Unix Systemer an iwwer IOCP op Windows. Eng Bibliothéik gëtt benotzt fir e Fuedempool ze kreéieren libeio, fir DNS Ufroen am Net-Blockéierungsmodus auszeféieren ass integréiert c-ier. 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 zréckginn. D'Ausféierung vum JavaScript Code ass gesuergt duerch d'Benotzung vun engem Motor entwéckelt vu Google V8 (Zousätzlech entwéckelt Microsoft eng Versioun vum Node.js mam Chakra-Core Engine).

Am Kär ass Node.js ähnlech wéi Kaderen Perl AnyEvent, Rubin Event Machine, Python Twisted и Ëmsetzung Eventer am Tcl, awer d'Event Loop am Node.js ass vum Entwéckler verstoppt a gläicht Eventhandhabung an enger Webapplikatioun déi an engem Browser leeft. Wann Dir Uwendungen fir node.js schreift, ass et néideg d'Spezifizitéite vun der Event-driven Programméierung ze berücksichtegen, zum Beispill, anstatt "var result = db.query ("select..");" 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'Donnéeën ukommen. .

Source: opennet.ru

Setzt e Commentaire