V apríli 2022 bolo vydané vydanie NodeJS Node v18. Aktualizácia Node v18 bola jednou z najočakávanejších aktualizácií od Node v14, ktorá pridala asynchrónne rozhranie API pre lokálne úložisko, rozhranie Web Assembly System Interface (WASI) a podporu pre moduly ECMAScript.

Inovácia v18 pridáva do NodeJS rôzne vylepšenia vrátane štandardne globálne povoleného rozhrania API na načítanie, podpory rozhrania API pre webový stream a modulu jadrového testovacieho programu. Tu pokrývame väčšinu významných zmien NodeJS vo verzii 18.

1. Rozhranie Fetch API

Rozhranie API na načítanie poskytuje rozhranie na prístup a manipuláciu s požiadavkami a odpoveďami HTTP. Pred NodeJS v18 vyžadovali požiadavky HTTP vykonané pomocou NodeJS knižnice tretích strán, ako napr axios a node-fetch alebo komplikované http alebo https balík.

NodeJS v18 štandardne sprístupňuje rozhranie fetch API v globálnom rozsahu. Globálne rozhranie API na načítanie eliminuje potrebu knižníc tretích strán, ako napr axios a podrobný kód spojený s https balík pri načítavaní zdrojov asynchrónne cez sieť.

instagram viewer

Tu je príklad použitia API:

konšt getData = asyncfunkciu () {
skúste {
konšt res = čakať načítať("https://example.com/users");
konšt údaje = čakať res.json();
konzoly.log (údaje);
} chytiť (chyba) {
konzoly.log('Niečo sa pokazilo, ${error}`);
}
};
getData();

The getData funkcia vyššie odošle a GET žiadosť o načítanie zdrojov z " https://example.com/users". Rozhranie API na načítanie preberá aj voliteľný druhý parameter, objekt volieb. Objekty volieb by mali obsahovať podrobnosti o požiadavke. Napríklad:

konšt userData = {
názov: "Jon Snow",
vek: 25,
rod: "M",
};
konšt postData = asyncfunkciu (údajov) {
skúste {
konšt res = čakať načítať("https://example.com/users", {
metóda: "POST",
telo: JSON.stringify (údaje),
});
konšt responseData = čakať res.json();
konzoly.log(
„Žiadosť bola úspešná, tu sú podrobnosti: ${responseData}`
);
} chytiť (chyba) {
konzoly.log(„Žiadosť nebola úspešná. Tu sú podrobnosti: ${error}`);
}
};
postData (userData);

Hoci rozhranie API na načítanie je stále experimentálne, mal by fungovať dobre pre väčšinu používateľov.

2. Podpora pre Web Streams API

Myslite na multimediálne aplikácie alebo aplikácie v reálnom čase; toto je základný prípad použitia rozhrania API webových streamov. Rozhranie API webových streamov je sada rozhraní, ktoré umožňujú programové rozdelenie veľkého zdroja prijatého cez sieť na malé časti a potom ich spracujú kúsok po kúsku.

Príkladom toku je telo odpovede vrátené úspešným aport žiadosť. Telo odpovede je typu ReadableStream.

NodeJS v18 odhaľuje an experimentálne implementácia rozhrania API webových streamov. Vďaka tejto aktualizácii sú teraz rozhrania API pre webové streamy dostupné na klientovi aj na serveri, vďaka čomu je vývoj priamočiarejší.

Zoznam aktuálne podporovaných streamov nájdete v oficiálne poznámky k vydaniu.

3. Modul Test Runner

V predchádzajúcich verziách NodeJS sa testovanie bez knižníc tretích strán vykonávalo so vstavaným tvrdiť knižnica.

The tvrdiť knižnica uľahčila písanie jednoduchých testov, no mala značné obmedzenia, ktoré sťažovali prácu s viacerými testovacími sadami. Tieto obmedzenia podporili potrebu, aby knižnice tretích strán, ako je Jest, spúšťali pokročilejšie testy.

NodeJS v18 odstraňuje potrebu knižníc tretích strán zavedením vlastného modulu testovacieho programu NodeJS. Testovací bežec podporuje funkcie ako čiastkové testy, preskočenie testu, testy spätného volania atď., podobne ako Jest.

Ak chcete použiť testovací bežec, musíte importovať tvrdiť od tvrdiť a test od uzol: test. Všimnite si "uzol:" predpona; je to nový protokol Node, ktorý odlišuje balíky jadra uzla od balíkov vytvorených používateľom.

konšttvrdiť = vyžadovať("tvrdiť");
konšt test = vyžadovať("uzol: test");

Tu je príklad jednoduchého testu pomocou modulu testovacieho bežca:

test("Skontrolujte, či sú reťazce rovnaké", (t) => {
claim.strictEqual("test", "test");
});

Výsledky testu zobrazené testovacím bežcom sa zobrazia TAP (Test Anything Protocol) formát. Upozorňujeme, že táto funkcia je stále experimentálna a môže sa kedykoľvek zmeniť.

4. Ďalšie vylepšenia a opravy

Aktualizácia Node v18 obsahuje aj aktualizáciu motora v8 na verziu 10.1. Motor v8 je runtime JavaScript, ktorý NodeJS používa na spustenie JavaScriptu.

Aktualizácia v8 umožňuje metódy poľafindLast a nájsťPoslednýIndex dostupné v NodeJS a zlepšuje výkon polí tried a metód súkromných tried.

NodeJS tiež odhaľuje nasledujúce rozhrania API v globálnom rozsahu v aktualizácii Node v18:

  • Blob
  • Brodcast Channel

Inovácia na Node v18

Pomocou Node v18 môžete testovať celú aplikáciu bez externých knižníc, získavať prostriedky asynchrónne bez externých knižníc a mať povolené webové streamy na vašom serveri.

Je však potrebné poznamenať, že tieto funkcie sú stále experimentálne a môžu sa kedykoľvek zmeniť. Môžete upgradovať na NodeJS v18 pomocou oficiálny odkaz na stiahnutie.