De server-side JavaScript-platform Node.js 19.0 is beschikbaar

De release van Node.js 19.0 is geweest, het platform voor het uitvoeren van netwerapplicaties in de programmeertaal JavaScript. Node.js 19 valt onder de reguliere ondersteuningscyclus waarvan updates tot juni 2023 zullen verschijnen. Binnenkort wordt de stabilisatie van de Node.js 18-tak afgerond, die de LTS-status zal krijgen en tot april 2025 ondersteund zal worden. De ondersteuning van de vorige LTS-tak Node.js 16.0 blijft tot september 2023, en van de eerdere LTS-tak 14.0 tot april 2023.

Hoofdverbeteringen:

  • De V8-engine is bijgewerkt naar versie 10.7, die wordt gebruikt in Chromium 107. Onder de wijzigingen in de engine ten opzichte van de Node.js 18-tak zijn de implementatie van de derde versie van de API Intl.NumberFormat, waarin nieuwe functies formatRange(), formatRangeToParts() en selectRange() zijn toegevoegd, het groeperen van verzamelingen, nieuwe opties voor afronding en precisie-instellingen, en de mogelijkheid om strings als decimale getallen te interpreteren. Ook zijn de dependencies llhttp 8.1.0 en npm 8.19.2 bijgewerkt.
  • Een experimentele commando "node —watch" is voorgesteld met de implementatie van de bewakingsmodus, die het proces herstart bij wijzigingen in het geĆÆmporteerde bestand (bijvoorbeeld, bij het uitvoeren van "node —watch index.js" zal het proces automatisch worden herstart bij wijzigingen in index.js).
  • Voor alle uitgaande HTTP/HTTPS-verbindingen is ondersteuning voor de HTTP 1.1 Keep-Alive-mechanisme ingeschakeld, waardoor de verbinding een bepaalde tijd open blijft voor het verwerken van meerdere HTTP-verzoeken binnen ƩƩn verbinding. Het gebruik van Keep-Alive zal naar verwachting de doorvoer en prestaties verhogen. Standaard is de timeout voor het openhouden van de verbinding ingesteld op 5 seconden. De HTTP-client heeft ondersteuning voor het parseren van de HTTP-Keep-Alive-header in de antwoorden toegevoegd. de server, en in de implementatie van de Node.js HTTP-server is automatische ontkoppeling van inactieve klanten die Keep-Alive gebruiken toegevoegd.
  • De API WebCrypto is doorgestuurd naar de stabiele versie, met uitzondering van functies die algoritmes Ed25519, Ed448, X25519 en X448 gebruiken. Voor toegang tot de WebCrypto-module kan nu globalThis.crypto of require(ā€˜node:crypto’).webcrypto worden gebruikt.
  • De ondersteuning voor de traceertools DTrace, SystemTap en ETW (Event Tracing for Windows) is verwijderd, omdat het onderhoud ervan als ondoelmatig werd beschouwd vanwege de complexiteit van het actueel houden zonder een adequaat ondersteuningsplan.

Het Node.js-platform kan worden gebruikt voor zowel serverondersteuning van webapplicaties als voor het creƫren van reguliere client- en servernetwerkprogramma's. Voor de uitbreiding van de functionaliteit van toepassingen voor Node.js is er een grote collectie modules beschikbaar, waar je modules kunt vinden met implementatie van servers en clients voor HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules voor integratie met verschillende webframeworks, WebSocket en Ajax handlers, connectoren naar databases (MySQL, PostgreSQL, SQLite, MongoDB), template-engines, CSS-engines, implementaties van cryptografie en autorisatiesystemen (OAuth), XML-parsers.

Om een groot aantal parallelle verzoeken te verwerken, maakt Node.js gebruik van een asynchroon model voor het uitvoeren van code, gebaseerd op het verwerken van gebeurtenissen in een niet-blokkerende modus en het definiëren van callback-handlers. Methoden zoals epoll, kqueue, /dev/poll en select worden ondersteund voor het multiplexen van verbindingen. De libuv bibliotheek, die een bovenlaag vormt boven libev in Unix-systemen en boven IOCP in Windows, wordt gebruikt voor het multiplexen van verbindingen. Voor het creëren van een thread pool wordt de libeio bibliotheek ingezet en voor het uitvoeren van DNS-verzoeken in niet-blokkerende modus is c-ares geïntegreerd. Alle systeemaanroepen die blokkeren, worden uitgevoerd binnen de thread pool en geven vervolgens, net als signaalhandlers, het resultaat van hun werk terug via een onge benoemde pijp. De uitvoering van JavaScript-code wordt mogelijk gemaakt door het gebruik van de door Google ontwikkelde V8-engine (bovendien ontwikkelt Microsoft een variant van Node.js met de Chakra-Core engine).

Node.js is in essence similar to frameworks like Perl AnyEvent, Ruby Event Machine, Python Twisted, and the event implementation in Tcl, but the event loop in Node.js is hidden from the developer and resembles event handling in a web application running in a browser. When writing applications for Node.js, it's important to consider the specifics of event-driven programming. For instance, instead of executing 'var result = db.query("select.." );' and waiting for it to finish before processing the results, Node.js employs an asynchronous execution principle where the code transforms to 'db.query("select..", function (result) {result processing});', allowing control to pass immediately to the subsequent code, while the result of the query is processed as data comes in.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster