Veröffentlichung der serverseitigen JavaScript-Plattform Node.js 13.0

Verfügbar Release Node.js 13.0, Plattformen zur Ausführung von Netzwerk-Anwendungen in JavaScript. Gleichzeitig wurde die Stabilisierung der vorherigen Node.js 12.x-Version abgeschlossen, die in die Kategorie der Long-Term-Support (LTS)-Versionen übertragen wurde, für die Updates über einen Zeitraum von 4 Jahren bereitgestellt werden. Die Unterstützung der alten LTS-Version Node.js 10.0 wird bis April 2021 fortgeführt, und die Unterstützung der LTS-Version 8.0 endet im Januar 2020.

Haupt Verbesserungen:

  • Die V8-Engine wurde auf die Version 7.8, die neue Methoden zur Leistungsoptimierung, verbesserte Objektdestrukturierung, reduzierten Speicherverbrauch und verkürzte Vorbereitungszeiten für die Ausführung von WebAssembly beinhaltet;
  • Standardmäßig wird vollständige Unterstützung für Internationalisierung und Unicode auf Basis der Bibliotheken ICU (International Components for Unicode) bereitgestellt, die es Entwicklern ermöglicht, Code zu schreiben, der mit verschiedenen Sprachen und Lokalitäten funktioniert. Das Modul full-icu ist jetzt standardmäßig installiert.
  • Die API Workers Threads, ermöglicht wurde stabilisiert, um mehrschichtige Ereignisverarbeitungsschleifen (event loop) zu erstellen. Die Implementierung basiert auf dem Modul worker_threads, das es erlaubt, JavaScript-Code in mehreren parallelen Threads auszuführen. Die stabile Unterstützung der API Workers Threads wurde ebenfalls in die LTS-Version Node.js 12.x zurückportiert.
  • Die Anforderungen an die Plattformen wurden erhöht. Für die Erstellung wird nun mindestens macOS 10.11 (Xcode 10 erforderlich), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008 benötigt; ist Die Unterstützung für Python 3 wurde verbessert. Wenn sowohl Python 2 als auch Python 3 auf dem System vorhanden sind, wird weiterhin Python 2 verwendet, aber es wurde die Möglichkeit hinzugefügt, nur mit Python 3 zu bauen;
  • Die alte Implementation des HTTP-Parsers („—http-parser=legacy“) wurde entfernt. Entfernte oder in den Status veraltet überführte Aufrufe und Eigenschaften: FSWatcher.prototype.start(), ChildProcess._channel, die Methode open() in den Objekten ReadStream und WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Darauf folgt
  • das Update 13.0.1, in dem umgehend mehrere Fehler behoben wurden. Dazu zählt die Lösung des Problems mit der Ausgabe einer Warnung in npm 6.12.0 über die Verwendung einer nicht unterstützten Version. wurde Wir erinnern daran, dass die Node.js-Plattform sowohl für die serverseitige Unterstützung von Webanwendungen als auch für die Erstellung normaler Client- und Servernetzwerkanwendungen verwendet werden kann. Für die Erweiterung der Funktionalität von Node.js-Anwendungen wurde eine umfangreiche

Sammlung von Modulen vorbereitet Modulkollektion, in der Module für die Implementierung von HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-Servern sowie Module zur Integration mit verschiedenen Web-Frameworks, WebSocket- und Ajax-Handler, Datenbank-Connectoren (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementierungen von Krypto-Algorithmen und Authentifizierungssystemen (OAuth), XML-Parser zu finden sind.

Um eine Bearbeitung einer großen Anzahl paralleler Anfragen zu gewährleisten, nutzt Node.js ein asynchrones Code-Ausführungsmodell, das auf der nicht-blockierenden Ereignisverarbeitung und der Bestimmung von Callback-Handlern basiert. Zur Multiplexierung der Verbindungen werden Methoden wie epoll, kqueue, /dev/poll und select unterstützt. Für die Multiplexierung wird die Bibliothek libuv, die eine Erweiterung über libev in Unix-Systemen und IOCP in Windows darstellt. Für die Erstellung eines Thread-Pools wird die Bibliothek libeio, für die Ausführung von DNS-Anfragen im nicht-blockierenden Modus ist integriert c-ares. Alle Systemaufrufe, die eine Blockierung hervorrufen, werden innerhalb eines Thread-Pools ausgeführt und geben ihre Ergebnisse, ähnlich wie Signalhandler, über ein anonymes Kanal (Pipe) zurück. Die Ausführung von JavaScript-Code erfolgt über die Nutzung der von Google entwickelten Engine. V8 (Zusätzlich entwickelt Microsoft eine Version von Node.js mit der Chakra-Core-Engine).

Im Grunde genommen ähnelt Node.js den Frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted und Implementierung Tcl-Ereignissen, aber die Ereignisverarbeitungsschleife (Event Loop) in Node.js ist vor dem Entwickler verborgen und ähnelt der Ereignisverarbeitung in einer Webanwendung, die im Browser läuft. Bei der Entwicklung von Anwendungen für Node.js muss man die Besonderheiten der ereignisgesteuerten Programmierung berücksichtigen, zum Beispiel anstelle der Ausführung von «var result = db.query(«select..»);» mit dem Warten auf den Abschluss und die anschließende Verarbeitung der Ergebnisse, verwendet Node.js das Prinzip der asynchronen Ausführung, d.h. der Code wird in «db.query(«select..», function (result) {Resultatverarbeitung});» umgewandelt, wobei die Kontrolle sofort an den nachfolgenden Code übergeben wird und das Ergebnis der Anfrage verarbeitet wird, während die Daten eintreffen.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster