Im April 2022 wurde die NodeJS-Version Node v18 veröffentlicht. Das Node v18-Update war eines der am meisten erwarteten Updates seit Node v14, das eine asynchrone lokale Speicher-API, eine Web Assembly System Interface (WASI) und Unterstützung für ECMAScript-Module hinzufügte.

Das v18-Upgrade fügt NodeJS verschiedene Verbesserungen hinzu, darunter eine standardmäßig global aktivierte Abruf-API, Webstream-API-Unterstützung und ein Core-Test-Runner-Modul. Hier behandeln wir die meisten wesentlichen Änderungen an NodeJS in v18.

1. Die Abruf-API

Die Abruf-API bietet eine Schnittstelle für den Zugriff auf und die Bearbeitung von HTTP-Anforderungen und -Antworten. Vor NodeJS v18 erforderten HTTP-Anfragen, die mit NodeJS gestellt wurden, Bibliotheken von Drittanbietern wie Axios und Knoten abrufen oder das Komplizierte http oder https Paket.

NodeJS v18 stellt die Abruf-API standardmäßig im globalen Bereich zur Verfügung. Die globale Abruf-API macht Bibliotheken von Drittanbietern wie z Axios und der ausführliche Code, der dem zugeordnet ist

instagram viewer
https Paket beim Abrufen von Ressourcen asynchron über ein Netzwerk.

Hier ist ein Beispiel für die Verwendung der API:

konst getData = asynchronFunktion () {
Versuchen {
konst res = erwarten holen ("https://example.com/users");
konst Daten = erwarten res.json();
Konsole.Logdaten);
} Fang (Error) {
Konsole.Protokoll(„Etwas ist schief gelaufen, ${Fehler}`);
}
};
Daten bekommen();

Das Daten bekommen obige Funktion sendet a ERHALTEN Anfrage zum Abrufen der Ressourcen " https://example.com/users". Die Abruf-API übernimmt auch einen optionalen zweiten Parameter, ein Optionsobjekt. Die Optionsobjekte sollten Details über die Anforderung enthalten. Zum Beispiel:

konst Benutzerdaten = {
Name: "Jon Schnee",
Alter: 25,
Geschlecht: "M",
};
konst postData = asynchronFunktion (Daten) {
Versuchen {
konst res = erwarten holen ("https://example.com/users", {
Methode: "POST",
Karosserie: JSON.stringify (Daten),
});
konst Antwortdaten = erwarten res.json();
Konsole.Protokoll(
`Die Anfrage war erfolgreich, hier sind die Details: ${responseData}`
);
} Fang (Error) {
Konsole.Protokoll(`Die Anfrage war nicht erfolgreich, hier sind die Details: ${Fehler}`);
}
};
postData (Benutzerdaten);

Obwohl die Abruf-API immer noch vorhanden ist Experimental-, sollte es für die meisten Benutzer gut funktionieren.

2. Unterstützung für die Webstreams-API

Denken Sie an Multimedia- oder Echtzeitanwendungen; Dies ist ein zentraler Anwendungsfall der Webstreams-API. Die Webstreams-API ist eine Reihe von Schnittstellen, die die programmgesteuerte Aufschlüsselung einer großen Ressource, die über ein Netzwerk empfangen wird, in kleine Teile ermöglichen und diese dann Stück für Stück verarbeiten.

Ein Beispiel für einen Stream ist der Antworttext, der von einem erfolgreichen zurückgegeben wird bringen Anfrage. Der Antworttext ist vom Typ Lesbarer Stream.

NodeJS v18 macht eine Experimental- Implementierung der Webstreams-API. Mit diesem Update sind Webstream-APIs jetzt sowohl im Client als auch im Server verfügbar, was die Entwicklung einfacher macht.

Eine Liste der derzeit unterstützten Streams finden Sie in der offizielle Versionshinweise.

3. Das Test Runner-Modul

In früheren Versionen von NodeJS wurde das Testen ohne Bibliotheken von Drittanbietern mit der integrierten behaupten Bibliothek.

Das behaupten Bibliothek machte es einfach, einfache Tests zu schreiben, hatte aber erhebliche Einschränkungen, die es schwierig machten, mit mehreren Testsuiten zu arbeiten. Diese Einschränkungen förderten die Notwendigkeit von Bibliotheken von Drittanbietern wie Jest, um fortgeschrittenere Tests durchzuführen.

NodeJS v18 eliminiert die Notwendigkeit von Bibliotheken von Drittanbietern mit der Einführung des eigenen Core-Test-Runner-Moduls von NodeJS. Der Testrunner unterstützt Funktionen wie Untertests, Testüberspringen, Callback-Tests usw., ähnlich wie Jest.

Um den Testrunner verwenden zu können, müssen Sie ihn importieren behaupten aus behaupten und Prüfung aus Knoten: testen. Beachten Sie das "Knoten:" Präfix; Es ist das neue Protokoll von Node, das Kernpakete von Knoten von benutzerdefinierten Paketen unterscheidet.

konstbehaupten = erfordern ("behaupten");
konst testen = benötigen("Knoten: Test");

Hier ist ein Beispiel für einen einfachen Test mit dem Testrunner-Modul:

Prüfung("Überprüfen Sie, ob die Zeichenfolgen gleich sind", (t) => {
assert.strictEqual("Prüfung", "Prüfung");
});

Die vom Testläufer angezeigten Testergebnisse sind in TAP (Test Anything Protocol) Format. Beachten Sie, dass diese Funktion noch experimentell ist und sich jederzeit ändern kann.

4. Andere Upgrades und Fixes

Das Node v18-Update enthält auch ein Update der v8-Engine auf Version 10.1. Die v8-Engine ist die JavaScript-Laufzeitumgebung, die von NodeJS zum Ausführen von JavaScript verwendet wird.

Das v8-Update macht das Array-MethodenfindLast und findLastIndex in NodeJS verfügbar und verbessert die Leistung von Klassenfeldern und privaten Klassenmethoden.

NodeJS macht auch die folgenden APIs im globalen Bereich im Node v18-Upgrade verfügbar:

  • Klecks
  • BroadcastChannel

Upgrade auf Node v18

Mit Node v18 können Sie eine ganze Anwendung ohne externe Bibliotheken testen, Ressourcen asynchron ohne externe Bibliotheken abrufen und Webstreams auf Ihrem Server aktivieren.

Es ist jedoch erwähnenswert, dass diese Funktionen noch experimentell sind und sich jederzeit ändern können. Sie können ein Upgrade auf NodeJS v18 mit dem durchführen offizieller Downloadlink.