2022. gada aprīlī tika izdots NodeJS laidiens Node v18. Node v18 atjauninājums ir bijis viens no visvairāk gaidītajiem atjauninājumiem kopš Node v14, kas pievienoja asinhronās vietējās krātuves API, Web Assembly System Interface (WASI) un ECMAScript moduļu atbalstu.

V18 jauninājums pievieno dažādus NodeJS uzlabojumus, tostarp globāli iespējotu ielādes API pēc noklusējuma, tīmekļa straumes API atbalstu un galveno testa palaišanas moduli. Šeit mēs aplūkojam lielāko daļu nozīmīgo izmaiņu NodeJS versijā v18.

1. Fetch API

Ieneses API nodrošina saskarni, lai piekļūtu HTTP pieprasījumiem un atbildēm un apstrādātu tos. Pirms NodeJS v18 HTTP pieprasījumiem, kas tika veikti, izmantojot NodeJS, bija nepieciešamas trešo pušu bibliotēkas, piemēram axios un mezgla ienese vai sarežģītais http vai https iepakojums.

NodeJS v18 pēc noklusējuma padara ielādes API pieejamu globālajā tvērumā. Globālā ielādes API novērš vajadzību pēc trešās puses bibliotēkām, piemēram axios un detalizētais kods, kas saistīts ar https pakotni, ienesot resursus asinhroni visā tīklā.

instagram viewer

Tālāk ir sniegts API lietošanas piemērs.

konst getData = asinhronsfunkcija () {
pamēģini {
konst res = gaidīt fetch("https://example.com/users");
konst dati = gaidīt res.json();
konsole.log (dati);
} noķert (kļūda) {
konsole.log(`Kaut kas nogāja greizi, ${error}`);
}
};
getData ();

The getData iepriekš minētā funkcija nosūta a GŪT pieprasījums iegūt resursus no " https://example.com/users". Ieneses API izmanto arī neobligātu otro parametru — opciju objektu. Opciju objektos jāiekļauj informācija par pieprasījumu. Piemēram:

konst userData = {
nosaukums: "Džons Snovs",
vecums: 25,
dzimums: "M",
};
konst pēcdati = asinhronsfunkcija (datus) {
pamēģini {
konst res = gaidīt fetch("https://example.com/lietotāji", {
metode: "POSTĪT",
korpuss: JSON.stringify (dati),
});
konst atbildesDati = gaidīt res.json();
konsole.log(
`Pieprasījums bija veiksmīgs. Tālāk ir sniegta informācija: ${responseData}`
);
} noķert (kļūda) {
konsole.log(`Pieprasījums bija neveiksmīgs. Tālāk ir sniegta informācija: ${error}`);
}
};
postData (userData);

Lai gan ielādes API joprojām ir eksperimentāls, tam vajadzētu labi darboties lielākajai daļai lietotāju.

2. Web Streams API atbalsts

Padomājiet par multivides vai reāllaika lietojumprogrammām; šis ir tīmekļa straumju API galvenais lietošanas gadījums. Tīmekļa straumēšanas API ir saskarņu kopa, kas ļauj programmatiski sadalīt tīklā saņemtu lielu resursu mazos gabalos, pēc tam tos apstrādā pamazām.

Straumes piemērs ir atbildes pamatteksts, ko atgriež veiksmīgais atnest pieprasījumu. Atbildes pamatteksts ir šāda veida ReadableStream.

NodeJS v18 atklāj an eksperimentāls tīmekļa straumēšanas API ieviešana. Izmantojot šo atjauninājumu, tīmekļa straumes API tagad ir pieejamas gan klientā, gan serverī, padarot izstrādi vienkāršāku.

Pašlaik atbalstīto straumju sarakstu varat atrast vietnē oficiālās piezīmes par atbrīvošanu.

3. Testa skrējēja modulis

Iepriekšējās NodeJS versijās testēšana bez trešo pušu bibliotēkām tika veikta ar iebūvēto apgalvot bibliotēka.

The apgalvot bibliotēka atviegloja vienkāršu testu rakstīšanu, taču tai bija būtiski ierobežojumi, kas apgrūtināja darbu ar vairākiem testu komplektiem. Šie ierobežojumi veicināja vajadzību trešo pušu bibliotēkām, piemēram, Jest, veikt sarežģītākus testus.

NodeJS v18 novērš vajadzību pēc trešo pušu bibliotēkām, ieviešot pašu NodeJS pamata testa palaišanas moduli. Testa izpildītājs atbalsta tādas funkcijas kā apakštesti, testa izlaišana, atzvanīšanas testi utt., līdzīgi kā Jest.

Lai izmantotu testa palaidēju, jums ir jāimportē apgalvot no apgalvot un pārbaude no mezgls: tests. Ievērojiet "mezgls:" priedēklis; tas ir Node jaunais protokols, kas atšķir mezgla pamata pakotnes no lietotāja izveidotajām pakotnēm.

konstapgalvot = prasīt ("apgalvot");
konst tests = pieprasīt("mezgls: tests");

Šeit ir vienkāršas pārbaudes piemērs, izmantojot testa skrējēja moduli:

pārbaude("Pārbaudiet, vai virknes ir vienādas", (t) => {
assert.strictEqual("pārbaude", "pārbaude");
});

Testa dalībnieka parādītie testa rezultāti būs pieejami TAP (pārbaudīt jebko protokolu) formātā. Ņemiet vērā, ka šī funkcija joprojām ir eksperimentāla un var mainīties jebkurā laikā.

4. Citi jauninājumi un labojumi

Node v18 atjauninājumā ir iekļauts arī v8 dzinēja atjauninājums uz versiju 10.1. V8 dzinējs ir JavaScript izpildlaiks, ko NodeJS izmanto, lai izpildītu JavaScript.

V8 atjauninājums padara masīvu metodesatrast Pēdējo un atrast LastIndex pieejams NodeJS un uzlabo klases lauku un privāto klašu metožu veiktspēju.

NodeJS globālajā tvērumā Node v18 jauninājumā atklāj arī šādas API:

  • Blob
  • BrodcastChannel

Jaunināšana uz Node v18

Izmantojot Node v18, varat pārbaudīt visu lietojumprogrammu bez ārējām bibliotēkām, asinhroni ienest resursus bez ārējām bibliotēkām un iespējot tīmekļa straumes savā serverī.

Tomēr ir vērts atzīmēt, ka šīs funkcijas joprojām ir eksperimentālas un var mainīties jebkurā laikā. Varat jaunināt uz NodeJS v18, izmantojot oficiālā lejupielādes saite.