Serverseitige JavaScript-Version Node.js 13.0

Verfügbar freigeben Node.js 13.0,Plattformen zum Ausführen von Netzwerkanwendungen in JavaScript. Gleichzeitig wurde die Stabilisierung des bisherigen Zweigs von Node.js 12.x abgeschlossen, der in die Kategorie der Long-Term-Support-Releases überführt wurde, deren Updates für 4 Jahre freigegeben werden. Die Unterstützung für den vorherigen LTS-Zweig von Node.js 10.0 dauert bis April 2021 und die Unterstützung für den letzten LTS-Zweig 8.0 bis Januar 2020.

Haupt- Verbesserungen:

  • V8-Motor auf Version aktualisiert 7.8, das neue Techniken zur Leistungsoptimierung verwendet, die Objektdestrukturierung verbessert, den Speicherverbrauch reduziert und die Vorbereitungszeit für die WebAssembly-Ausführung verkürzt;
  • Die vollständige Unterstützung für Internationalisierung und bibliotheksbasierten Unicode ist standardmäßig aktiviert ICU (International Components for Unicode), mit dem Entwickler Code schreiben können unterstützen Arbeiten Sie mit verschiedenen Sprachen und Gebietsschemas. Das Full-ICU-Modul ist jetzt standardmäßig installiert;
  • API stabilisiert Arbeiterthreads, erlauben Erstellen Sie Multithread-Ereignisschleifen. Die Implementierung basiert auf dem Modul worker_threads, mit dem Sie JavaScript-Code in mehreren parallelen Threads ausführen können. Stabile Unterstützung für die Workers Threads API wurde auch auf den LTS-Zweig von Node.js 12.x zurückportiert;
  • Die Anforderungen an Plattformen wurden erhöht. Jetzt zum Zusammenbau erforderlich mindestens macOS 10.11 (erfordert Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Verbesserte Unterstützung für Python 3. Wenn das System sowohl über Python 2 als auch über Python 3 verfügt, wird Python 2 weiterhin verwendet, aber die Möglichkeit zum Erstellen, wenn nur Python 3 auf dem System installiert ist, wurde hinzugefügt;
  • Die alte Implementierung des HTTP-Parsers („—http-parser=legacy“) wurde entfernt. Entfernte oder veraltete Aufrufe und Eigenschaften FSWatcher.prototype.start(), ChildProcess._channel, open()-Methode in ReadStream- und WriteStream-Objekten, request.connection, Response.connection, module.createRequireFromPath();
  • Nachfolgend kam heraus Update 13.0.1, das schnell mehrere Fehler behebt. Insbesondere wurde das Problem behoben, dass npm 6.12.0 eine Warnung vor der Verwendung einer nicht unterstützten Version anzeigte.

Erinnern wir uns daran, dass die Node.js-Plattform sowohl für die serverseitige Unterstützung von Webanwendungen als auch für die Erstellung gewöhnlicher Client- und Server-Netzwerkprogramme verwendet werden kann. Um die Funktionalität von Anwendungen für Node.js zu erweitern, ist eine große Anzahl von Sammlung von Modulen, in dem Sie Module mit der Implementierung von Servern und Clients HTTP, SMTP, , MongoDB), Template-Engines, CSS-Engines, Implementierungen kryptografischer Algorithmen und Autorisierungssysteme (OAuth), XML-Parser.

Um eine große Anzahl paralleler Anfragen zu verarbeiten, verwendet Node.js ein asynchrones Codeausführungsmodell, das auf nicht blockierender Ereignisverarbeitung und der Definition von Callback-Handlern basiert. Zu den unterstützten Methoden zum Multiplexen von Verbindungen gehören epoll, kqueue, /dev/poll und select. Die Bibliothek wird zum Multiplexen von Verbindungen verwendet libuv, das ist ein Überbau darüber libev auf Unix-Systemen und über IOCP unter Windows. Eine Bibliothek wird zum Erstellen eines Thread-Pools verwendet libeio, zur Durchführung von DNS-Abfragen im nicht blockierenden Modus, ist integriert c-ares. Alle Systemaufrufe, die eine Blockierung verursachen, werden innerhalb des Thread-Pools ausgeführt und geben dann wie Signalhandler das Ergebnis ihrer Arbeit über eine unbenannte Pipe zurück. Die Ausführung von JavaScript-Code wird durch den Einsatz einer von Google entwickelten Engine sichergestellt V8 (Darüber hinaus entwickelt Microsoft eine Version von Node.js mit der Chakra-Core-Engine).

Im Kern ähnelt Node.js Frameworks Perl AnyEvent, Ruby-Ereignismaschine, Python verdreht и Implementierung Ereignisse in Tcl, aber die Ereignisschleife in Node.js ist für den Entwickler verborgen und ähnelt der Ereignisbehandlung in einer Webanwendung, die in einem Browser ausgeführt wird. Beim Schreiben von Anwendungen für node.js müssen die Besonderheiten der ereignisgesteuerten Programmierung berücksichtigt werden, anstatt beispielsweise „var result = db.query(“select..“);“ auszuführen. Mit dem Warten auf den Abschluss der Arbeit und der anschließenden Verarbeitung der Ergebnisse verwendet Node.js das Prinzip der asynchronen Ausführung, d. h. Der Code wird in „db.query(„select..“, function (result) {result processing});“ umgewandelt, wobei die Steuerung sofort an weiteren Code übergeben wird und das Abfrageergebnis verarbeitet wird, sobald Daten eintreffen. .

Source: opennet.ru

Kommentar hinzufügen