V dubnu 2022 byla vydána verze NodeJS Node v18. Aktualizace Node v18 je jednou z nejočekávanějších aktualizací od Node v14, která přidala API pro asynchronní místní úložiště, rozhraní WASI (Web Assembly System Interface) a podporu pro moduly ECMAScript.

Upgrade v18 přidává různá vylepšení NodeJS, včetně standardně globálně povoleného rozhraní načítání API, podpory rozhraní API pro webový stream a modulu základního testovacího běhu. Zde pokryjeme většinu významných změn NodeJS ve verzi 18.

1. Rozhraní Fetch API

Rozhraní API pro načítání poskytuje rozhraní pro přístup a manipulaci s požadavky a odpověďmi HTTP. Před NodeJS v18 vyžadovaly požadavky HTTP provedené pomocí NodeJS knihovny třetích stran, jako např axios a node-fetch nebo komplikované http nebo https balík.

NodeJS v18 standardně zpřístupňuje rozhraní fetch API v globálním rozsahu. Globální fetch API eliminuje potřebu knihoven třetích stran, jako je např axios a podrobný kód spojený s https balíček při načítání zdrojů asynchronně přes síť.

instagram viewer

Zde je příklad použití API:

konst getData = asynchronnífunkce () {
Snaž se {
konst res = čekat načíst("https://example.com/users");
konst údaje = čekat res.json();
řídicí panel.log (data);
} úlovek (chyba) {
řídicí panel.log(,,Něco se pokazilo, ${error}`);
}
};
getData();

The getData funkce výše odešle a DOSTAT požadavek na načtení zdrojů " https://example.com/users". Rozhraní fetch API také přebírá volitelný druhý parametr, objekt options. Objekty voleb by měly obsahovat podrobnosti o požadavku. Například:

konst userData = {
název: "Jon Sníh",
věk: 25,
Rod: "M",
};
konst postData = asynchronnífunkce (data) {
Snaž se {
konst res = čekat načíst("https://example.com/users", {
metoda: "POŠTA",
tělo: JSON.stringify (data),
});
konst responseData = čekat res.json();
řídicí panel.log(
`Požadavek byl úspěšný, zde jsou podrobnosti: ${responseData}`
);
} úlovek (chyba) {
řídicí panel.log(`Požadavek nebyl úspěšný, zde jsou podrobnosti: ${error}`);
}
};
postData (userData);

Ačkoli API pro načítání je stále experimentální, mělo by to fungovat dobře pro většinu uživatelů.

2. Podpora pro Web Streams API

Myslete na multimédia nebo aplikace v reálném čase; toto je hlavní případ použití rozhraní API pro webové streamy. Rozhraní API pro webové streamy je sada rozhraní, která umožňují programové rozdělení velkého zdroje přijatého přes síť na malé části a poté jej zpracují kousek po kousku.

Příkladem proudu je tělo odpovědi vrácené úspěšným vynést žádost. Tělo odpovědi je typu ReadableStream.

NodeJS v18 odhaluje an experimentální implementace API pro webové streamy. Díky této aktualizaci jsou nyní rozhraní API pro webový stream k dispozici v klientovi i na serveru, což usnadňuje vývoj.

Seznam aktuálně podporovaných streamů naleznete v oficiální poznámky k vydání.

3. Modul Test Runner

V dřívějších verzích NodeJS bylo testování bez knihoven třetích stran prováděno s vestavěným tvrdit knihovna.

The tvrdit Knihovna usnadňovala psaní jednoduchých testů, ale měla významná omezení, která ztěžovala práci s více testovacími sadami. Tato omezení podpořila potřebu, aby knihovny třetích stran, jako je Jest, spouštěly pokročilejší testy.

NodeJS v18 odstraňuje potřebu knihoven třetích stran zavedením vlastního modulu základního testovacího běhu NodeJS. Testovací program podporuje funkce jako dílčí testy, přeskakování testu, testy zpětného volání atd., podobně jako Jest.

Chcete-li použít testovací běh, musíte importovat tvrdit z tvrdit a test z uzel: test. Všimněte si "uzel:" předpona; je to nový protokol Node, který odlišuje balíčky jádra uzlů od balíčků vytvořených uživatelem.

konsttvrdit = vyžadovat("tvrdit");
konst test = vyžadovat("uzel: test");

Zde je příklad jednoduchého testu pomocí modulu testovacího běžce:

test("Zkontrolujte, zda jsou řetězce stejné", (t) => {
claim.strictEqual("test", "test");
});

Výsledky testu zobrazené testovacím běžcem se zobrazí TAP (Test Anything Protocol) formát. Upozorňujeme, že tato funkce je stále experimentální a může se kdykoli změnit.

4. Další upgrady a opravy

Aktualizace Node v18 také obsahuje aktualizaci enginu v8 na verzi 10.1. Engine v8 je běhové prostředí JavaScriptu používané NodeJS ke spouštění JavaScriptu.

Aktualizace v8 umožňuje metody polenajítPoslední a najítLastIndex dostupné v NodeJS a zlepšuje výkon polí tříd a metod soukromých tříd.

NodeJS také zpřístupňuje následující rozhraní API v globálním rozsahu v upgradu Node v18:

  • Kapka
  • Brodcast Channel

Upgrade na Node v18

Pomocí Node v18 můžete testovat celou aplikaci bez externích knihoven, načítat prostředky asynchronně bez externích knihoven a mít na svém serveru povolené webové streamy.

Je však třeba poznamenat, že tyto funkce jsou stále experimentální a mohou se kdykoli změnit. Můžete upgradovat na NodeJS v18 pomocí oficiální odkaz ke stažení.