Aprila 2022 je bila izdana NodeJS izdaja Node v18. Posodobitev Node v18 je bila ena najbolj pričakovanih posodobitev od Node v14, ki je dodala asinhronizirani lokalni API za shranjevanje, sistemski vmesnik spletnega sestavljanja (WASI) in podporo za module ECMAScript.
Nadgradnja v18 dodaja različne izboljšave NodeJS, vključno z globalno omogočenim privzetim API-jem za pridobivanje, podporo za API za spletni tok in osnovnim modulom testnega tekača. Tukaj pokrivamo večino pomembnih sprememb NodeJS v v18.
1. API za pridobivanje
API za pridobivanje zagotavlja vmesnik za dostop do zahtev in odgovorov HTTP ter njihovo upravljanje. Pred NodeJS v18 so zahteve HTTP, narejene z NodeJS, zahtevale knjižnice tretjih oseb, kot so aksios in pridobivanje vozlišča ali zapleteno http oz https paket.
NodeJS v18 omogoča, da je API za pridobivanje privzeto na voljo v globalnem obsegu. Globalni API za pridobivanje odpravlja potrebo po knjižnicah tretjih oseb, kot je aksios in podrobno kodo, povezano z https paket pri pridobivanju virov asinhrono po omrežju.
Tukaj je primer uporabe API-ja:
konst getData = asyncfunkcijo () {
poskusi {
konst res = čakati prinesi ("https://example.com/users");
konst podatki = čakati res.json();
konzolo.log (podatki);
} ujeti (napaka) {
konzolo.log(`Nekaj je šlo narobe, ${error}`);
}
};
getData();
The getData zgornja funkcija pošlje a GET zahteva za pridobitev virov iz " https://example.com/users". API za pridobivanje vzame tudi neobvezni drugi parameter, objekt možnosti. Objekti možnosti morajo vsebovati podrobnosti o zahtevi. Na primer:
konst uporabniški podatki = {
ime: "Jon Snow",
starost: 25,
spol: "M",
};
konst postData = asyncfunkcijo (podatkov) {
poskusi {
konst res = čakati prinesi ("https://example.com/uporabniki", {
metoda: "OBJAVI",
telo: JSON.stringify (podatki),
});
konst responseData = čakati res.json();
konzolo.log(
`Zahteva je bila uspešna, tukaj so podrobnosti: ${responseData}`
);
} ujeti (napaka) {
konzolo.log(`Zahteva ni bila uspešna, tukaj so podrobnosti: ${error}`);
}
};
postData (uporabniški podatki);
Čeprav je API za pridobivanje še vedno eksperimentalni, bi moralo dobro delovati za večino uporabnikov.
2. Podpora za API za spletne tokove
Pomislite na večpredstavnostne aplikacije ali aplikacije v realnem času; to je osnovni primer uporabe API-ja za spletne tokove. API za spletne pretoke je nabor vmesnikov, ki omogočajo programsko razčlenitev velikega vira, prejetega prek omrežja, na majhne koščke, nato pa ga obdela po delih.
Primer toka je telo odziva, ki ga vrne uspešnica prinesi prošnja. Telo odziva je takega tipa ReadableStream.
NodeJS v18 izpostavlja an eksperimentalni implementacija API-ja za spletne tokove. S to posodobitvijo so API-ji za spletni tok zdaj na voljo tako v odjemalcu kot v strežniku, zaradi česar je razvoj enostavnejši.
Seznam trenutno podprtih tokov najdete v uradne opombe o izdaji.
3. Modul Test Runner
V prejšnjih različicah NodeJS je bilo testiranje brez knjižnic tretjih oseb opravljeno z vgrajenim trditi knjižnica.
The trditi knjižnica je olajšala pisanje preprostih testov, vendar je imela pomembne omejitve, ki so otežile delo z več testnimi zbirkami. Te omejitve so spodbudile potrebo po knjižnicah tretjih oseb, kot je Jest, da izvajajo naprednejše teste.
NodeJS v18 odpravlja potrebo po knjižnicah tretjih oseb z uvedbo NodeJS-jevega lastnega osnovnega testnega modula. Testni tekač podpira funkcije, kot so podtesti, preskakovanje testov, testi povratnega klica itd., podobno kot Jest.
Če želite uporabiti testni tekač, morate uvoziti trditi od trditi in test od vozlišče: test. Upoštevajte "vozlišče:" predpona; To je nov protokol Node, ki razlikuje jedrne pakete vozlišča od paketov, ki jih ustvarijo uporabniki.
konsttrditi = zahteva ("trditi");
konst test = zahtevajo("vozlišče: test");
Tukaj je primer preprostega testa z uporabo modula testnega tekača:
test ("Preverite, ali so nizi enaki", (t) => {
assert.strictEqual("test", "test");
});
Rezultati testa, ki jih prikaže tekmovalec, bodo prikazani TAP (Test Anything Protocol) formatu. Upoštevajte, da je ta funkcija še vedno poskusna in se lahko kadar koli spremeni.
4. Druge nadgradnje in popravki
Posodobitev Node v18 vključuje tudi posodobitev motorja v8 na različico 10.1. Motor v8 je izvajalni čas JavaScript, ki ga NodeJS uporablja za izvajanje JavaScripta.
Posodobitev v8 naredi metode nizafindLast in findLastIndex na voljo v NodeJS in izboljšuje zmogljivost polj razreda in metod zasebnega razreda.
NodeJS izpostavlja tudi naslednje API-je v globalnem obsegu v nadgradnji Node v18:
- Blob
- BrodcastChannel
Nadgradnja na Node v18
Z uporabo Node v18 lahko preizkusite celotno aplikacijo brez zunanjih knjižnic, asinhrono pridobivate vire brez zunanjih knjižnic in imate omogočene spletne tokove v vašem strežniku.
Vendar je treba omeniti, da so te funkcije še vedno eksperimentalne in se lahko kadar koli spremenijo. Na NodeJS v18 lahko nadgradite z uporabo uradna povezava za prenos.