2022. aasta aprillis anti välja NodeJS-i väljalase Node v18. Node v18 värskendus on olnud üks oodatumaid värskendusi alates Node v14-st, mis lisas asünkroonse kohaliku salvestuse API, Web Assembly System Interface'i (WASI) ja toe ECMAScripti moodulitele.
Värskendus v18 lisab NodeJS-ile mitmesuguseid täiustusi, sealhulgas vaikimisi globaalselt lubatud toomise API, veebivoo API tugi ja põhilise testimismooduli. Siin käsitleme enamikku olulisi muudatusi NodeJS-is versioonis 18.
1. Tõmba API
Tõmbamise API pakub liidest HTTP-päringute ja vastuste juurde pääsemiseks ja nendega manipuleerimiseks. Enne NodeJS v18 nõudsid NodeJS-iga tehtud HTTP-päringud kolmandate osapoolte teeke, nagu aksiosid ja sõlme toomine või keeruline http või https pakett.
NodeJS v18 muudab toomise API vaikimisi kättesaadavaks globaalses ulatuses. Globaalne toomise API välistab vajaduse selliste kolmandate osapoolte teekide järele nagu aksiosid ja sõnaga seotud paljusõnaline kood https pakett ressursside toomisel asünkroonselt üle võrgu.
Siin on näide API kasutamisest:
konst getData = asünkrfunktsiooni () {
proovige {
konst res = ootama tõmba("https://example.com/users");
konst andmed = ootama res.json();
konsool.log (andmed);
} püüda (viga) {
konsool.log(`Midagi läks valesti, ${error}`);
}
};
getData();
The getData ülaltoodud funktsioon saadab a SAADA päring ressursside toomiseks " https://example.com/users". Tõmbamise API võtab ka valikulise teise parameetri, suvandite objekti. Suvandite objektid peaksid sisaldama päringu üksikasju. Näiteks:
konst userData = {
nimi: "Jon Snow",
vanus: 25,
sugu: "M",
};
konst postData = asünkrfunktsiooni (andmeid) {
proovige {
konst res = ootama tõmba("https://example.com/users", {
meetod: "POSTITA",
keha: JSON.stringify (andmed),
});
konst vastuseandmed = ootama res.json();
konsool.log(
`Taotlus oli edukas, siin on üksikasjad: ${responseData}`
);
} püüda (viga) {
konsool.log(`Taotlus ebaõnnestus. Siin on üksikasjad: ${error}`);
}
};
postData (userData);
Kuigi toomise API on endiselt eksperimentaalne, peaks see enamiku kasutajate jaoks hästi töötama.
2. Web Streams API tugi
Mõelge multimeediumi- või reaalajas rakendustele; see on veebivoogude API põhikasutusjuht. Veebivoogude API on liideste kogum, mis võimaldab võrgu kaudu vastuvõetud suure ressursi programmiliselt jagada väikesteks tükkideks ja seejärel töödelda seda osade kaupa.
Voo näide on eduka tagastatud vastuse keha tooma nõuda. Vastuse keha on tüüpi ReadableStream.
NodeJS v18 paljastab eksperimentaalne veebivoogude API juurutamine. Selle värskendusega on veebivoo API-d nüüd saadaval nii kliendis kui ka serveris, muutes arenduse lihtsamaks.
Praegu toetatud voogude loendi leiate veebisaidilt ametlikud väljalaskemärkmed.
3. Testijooksja moodul
NodeJS-i varasemates versioonides tehti testimine ilma kolmandate osapoolte teekideta sisseehitatud väita raamatukogu.
The väita raamatukogu tegi lihtsate testide kirjutamise lihtsaks, kuid sellel olid olulised piirangud, mis raskendasid mitme testikomplektiga töötamist. Need piirangud suurendasid vajadust kolmandate osapoolte raamatukogude, nagu Jest, järele keerukamate testide käitamiseks.
NodeJS v18 välistab vajaduse kolmandate osapoolte teekide järele, võttes kasutusele NodeJSi enda põhilise testimismooduli. Testijuht toetab selliseid funktsioone nagu alamtestid, testi vahelejätmine, tagasihelistamise testid jne, sarnaselt Jestile.
Testrunneri kasutamiseks peate importima väita alates väita ja katsetada alates sõlm: test. Pange tähele "sõlm:" eesliide; see on Node'i uus protokoll, mis eristab sõlmede põhipakette kasutaja loodud pakettidest.
konstväita = nõua ("väita");
konst test = nõuda("sõlm: test");
Siin on näide lihtsast testist, milles kasutatakse testimismoodulit:
test("Kontrollige, kas stringid on samad", (t) => {
assert.strictEqual("katsetada", "katsetada");
});
Testisõitja kuvatud testitulemused sisestatakse TAP (Test Anything Protocol) vormingus. Pange tähele, et see funktsioon on endiselt katseline ja võib igal ajal muutuda.
4. Muud täiendused ja parandused
Node v18 värskendus sisaldab ka v8 mootori värskendust versioonile 10.1. V8 mootor on JavaScripti käitusaeg, mida NodeJS kasutab JavaScripti käivitamiseks.
Värskendus v8 muudab massiivi meetodidleia Viimane ja FindLastIndex saadaval NodeJS-is ja parandab klassiväljade ja privaatklassi meetodite jõudlust.
NodeJS avaldab Node v18 täienduses globaalses ulatuses ka järgmised API-d:
- Blob
- BrodcastChannel
Üleminek Node v18-le
Node v18 abil saate testida tervet rakendust ilma väliste teekideta, tuua ressursse asünkroonselt ilma väliste teekideta ja lubada oma serveris veebivoogusid.
Siiski väärib märkimist, et need funktsioonid on endiselt eksperimentaalsed ja võivad igal ajal muutuda. Saate uuendada versioonile NodeJS v18, kasutades ametlik allalaadimise link.