2022 áprilisában megjelent a NodeJS Node v18. A Node v18 frissítés az egyik legjobban várt frissítés a Node v14 óta, amely az aszinkron helyi tárolási API-t, a Web Assembly System Interface-t (WASI) és az ECMAScript modulok támogatását adta.

A v18-as frissítés számos fejlesztést ad a NodeJS-hez, beleértve az alapértelmezés szerint globálisan engedélyezett lekérési API-t, a webes adatfolyam API-támogatást és egy alapvető tesztfutó modult. Itt bemutatjuk a NodeJS v18-as verziójának jelentős változásait.

1. A Fetch API

A lekérési API felületet biztosít a HTTP kérések és válaszok eléréséhez és kezeléséhez. A NodeJS v18 előtt a NodeJS-szel végrehajtott HTTP-kérelmek külső féltől származó könyvtárakat igényeltek, mint pl axiók és node-fetch vagy a bonyolult http vagy https csomag.

A NodeJS v18 alapértelmezés szerint elérhetővé teszi a lekérési API-t a globális hatókörben. A globális lekérési API szükségtelenné teszi a harmadik féltől származó könyvtárakat, mint pl axiók és a hozzá tartozó bőbeszédű kódot https csomagot az erőforrások lekérésekor aszinkron módon a hálózaton keresztül.

Íme egy példa az API használatára:

const getData = asyncfunkció () {
próbálja meg {
const res = várják fetch("https://example.com/users");
const adatok = várják res.json();
konzol.log (adatok);
} fogás (hiba) {
konzol.log(`Valami elromlott, ${error}`);
}
};
getData();

Az getData fenti függvény küldi a KAP kérje az erőforrások lekérését " https://example.com/users". A lekérési API egy opcionális második paramétert is igénybe vesz, egy opciós objektumot. Az opció objektumoknak tartalmazniuk kell a kérés részleteit. Például:

const userData = {
név: "Jon Snow",
életkor: 25,
nem: "M",
};
const postData = asyncfunkció (adat) {
próbálja meg {
const res = várják fetch("https://example.com/felhasználók", {
módszer: "POST",
test: JSON.stringify (adat),
});
const responseData = várják res.json();
konzol.log(
`A kérés sikeres volt, íme a részletek: ${responseData}`
);
} fogás (hiba) {
konzol.log(`A kérés sikertelen volt, íme a részletek: ${error}`);
}
};
postData (userData);

Bár a fetch API még mindig kísérleti, a legtöbb felhasználó számára jól kell működnie.

2. Web Streams API támogatása

Gondoljon multimédiás vagy valós idejű alkalmazásokra; ez a web-stream API alapvető használati esete. A webes adatfolyamok API olyan felületek halmaza, amelyek lehetővé teszik a hálózaton keresztül kapott nagy erőforrások programozott lebontását kis darabokra, majd apránként feldolgozzák.

Az adatfolyamra példa a sikeres választörzs elhozni kérés. A választörzs a következő típusú ReadableStream.

A NodeJS v18 egy kísérleti a web stream API megvalósítása. Ezzel a frissítéssel a web stream API-k már elérhetőek a kliensben és a szerverben is, így a fejlesztés egyszerűbbé válik.

A jelenleg támogatott adatfolyamok listáját a hivatalos kiadási megjegyzések.

3. A tesztfutó modul

A NodeJS korábbi verzióiban a harmadik féltől származó könyvtárak nélküli tesztelés a beépített szoftverrel történt állítja könyvtár.

Az állítja A könyvtár megkönnyítette az egyszerű tesztek megírását, de jelentős korlátai voltak, amelyek megnehezítették a több tesztkészlettel való munkát. Ezek a korlátozások elősegítették, hogy a külső felek, például a Jest könyvtárak fejlettebb teszteket futtassanak.

A NodeJS v18 kiküszöböli a harmadik féltől származó könyvtárak szükségességét a NodeJS saját alapvető tesztfutó moduljának bevezetésével. A tesztfutó olyan funkciókat támogat, mint a résztesztek, a tesztkihagyás, a visszahívási tesztek stb., hasonlóan a Jesthez.

A tesztfutó használatához importálnia kell állítja tól től állítja és teszt tól től csomópont: teszt. Vedd észre a "csomópont:" előtag; ez a Node új protokollja, amely megkülönbözteti a csomóponti magcsomagokat a felhasználó által létrehozott csomagoktól.

constállítja = igényel("állítja");
const teszt = igényelnek("csomópont: teszt");

Íme egy példa egy egyszerű tesztre a tesztfutó modul használatával:

teszt("Ellenőrizze, hogy a karakterláncok azonosak-e", (t) => {
assert.strictEqual("teszt", "teszt");
});

A tesztfutó által megjelenített teszteredmények megjelennek TAP (Test Anything Protocol) formátum. Vegye figyelembe, hogy ez a funkció még kísérleti jellegű, és bármikor megváltozhat.

4. Egyéb frissítések és javítások

A Node v18 frissítés tartalmazza a v8 motor frissítését is a 10.1-es verzióra. A v8 motor a JavaScript futtatókörnyezete, amelyet a NodeJS használ a JavaScript végrehajtására.

A v8 frissítés teszi a tömb módszerekFindLast és FindLastIndex elérhető a NodeJS-ben, és javítja az osztálymezők és a privát osztálymetódusok teljesítményét.

A NodeJS a következő API-kat is elérhetővé teszi a globális hatókörben a Node v18 frissítésben:

  • Folt
  • BrodcastChannel

Frissítés a Node v18-ra

A Node v18 használatával tesztelhet egy teljes alkalmazást külső könyvtárak nélkül, az erőforrásokat aszinkron módon lekérheti külső könyvtárak nélkül, és engedélyezheti a webes adatfolyamokat a szerveren.

Érdemes azonban megjegyezni, hogy ezek a funkciók még csak kísérleti jellegűek, és bármikor változhatnak. A NodeJS v18-ra frissíthet a hivatalos letöltési link.