Huhtikuussa 2022 julkaistiin NodeJS-julkaisu Node v18. Node v18 -päivitys on ollut yksi odotetuimmista päivityksistä sitten Node v14, joka lisäsi async paikallisen tallennusrajapinnan, Web Assembly System Interfacen (WASI) ja tuen ECMAScript-moduuleille.
V18-päivitys lisää useita parannuksia NodeJS: ään, mukaan lukien oletuksena maailmanlaajuisesti käytössä oleva haku-API, verkkovirta-API-tuki ja ydintestausohjelmamoduuli. Tässä käsittelemme useimmat merkittävät muutokset NodeJS: ään v18:ssa.
1. Fetch API
Hae API tarjoaa käyttöliittymän HTTP-pyyntöjen ja -vastausten käsittelyyn ja käsittelyyn. Ennen NodeJS v18:aa NodeJS: llä tehdyt HTTP-pyynnöt vaativat kolmannen osapuolen kirjastoja, kuten aksiot ja solmuhaku tai monimutkaista http tai https paketti.
NodeJS v18 tekee haun sovellusliittymän oletusarvoisesti saataville maailmanlaajuisessa laajuudessa. Globaali hakusovellusliittymä eliminoi tarpeen kolmannen osapuolen kirjastoille, kuten aksiot ja sanaan liittyvä monisanainen koodi https pakettia haettaessa resursseja asynkronisesti verkon yli.
Tässä on esimerkki API: n käytöstä:
konst getData = asynktoiminto () {
yrittää {
konst res = odottaa fetch("https://example.com/users");
konst data = odottaa res.json();
konsoli.log (data);
} ottaa kiinni (virhe) {
konsoli.Hirsi(`Jotain meni pieleen, ${error}`);
}
};
getData();
The getData yllä oleva toiminto lähettää a SAADA pyytää resurssien hakemista " https://example.com/users". Hae API ottaa myös valinnaisen toisen parametrin, option-objektin. Asetusobjektien tulee sisältää tietoja pyynnöstä. Esimerkiksi:
konst userData = {
nimi: "Jon Snow",
ikä: 25,
sukupuoli: "M",
};
konst postData = asynktoiminto (tiedot) {
yrittää {
konst res = odottaa fetch("https://example.com/käyttäjät", {
menetelmä: "LÄHETTÄÄ",
runko: JSON.stringify (data),
});
konst vastaustiedot = odottaa res.json();
konsoli.Hirsi(
`Pyyntö onnistui, tässä tiedot: ${responseData}`
);
} ottaa kiinni (virhe) {
konsoli.Hirsi(`Pyyntö epäonnistui, tässä tiedot: ${error}`);
}
};
postData (userData);
Vaikka hae API on edelleen kokeellinen, sen pitäisi toimia hyvin useimmille käyttäjille.
2. Tuki Web Streams API: lle
Ajattele multimedia- tai reaaliaikasovelluksia; tämä on web-streams API: n ydinkäyttötapaus. Verkkovirtojen API on joukko rajapintoja, jotka mahdollistavat verkon kautta vastaanotetun suuren resurssin ohjelmallisen jakamisen pieniksi paloiksi ja käsittelevät sen sitten pala kerrallaan.
Esimerkki virrasta on onnistuneen palauttaman vastausteksti hakea pyyntö. Vastausrunko on tyyppiä ReadableStream.
NodeJS v18 paljastaa kokeellinen web streams API: n käyttöönotto. Tämän päivityksen myötä verkkovirtasovellusliittymät ovat nyt saatavilla sekä asiakkaalle että palvelimelle, mikä tekee kehityksestä yksinkertaisempaa.
Löydät luettelon tällä hetkellä tuetuista virroista viralliset julkaisutiedot.
3. Test Runner -moduuli
NodeJS: n aiemmissa versioissa testaus ilman kolmannen osapuolen kirjastoja tehtiin sisäänrakennetulla versiolla väittää kirjasto.
The väittää kirjasto helpotti yksinkertaisten testien kirjoittamista, mutta sillä oli merkittäviä rajoituksia, jotka vaikeuttivat useiden testipakettien käyttöä. Nämä rajoitukset lisäsivät kolmansien osapuolien kirjastojen, kuten Jestin, tarvetta suorittaa kehittyneempiä testejä.
NodeJS v18 eliminoi kolmannen osapuolen kirjastojen tarpeen NodeJS: n oman ydintestausmoduulin avulla. Testausohjelma tukee ominaisuuksia, kuten osatestejä, testien ohittamista, takaisinsoittotestejä jne., aivan kuten Jest.
Jotta voit käyttää testiajoa, sinun on tuotava väittää alkaen väittää ja testata alkaen solmu: testi. Huomaa "solmu:" etuliite; Se on Noden uusi protokolla, joka erottaa solmun ydinpaketit käyttäjien luomista paketeista.
konstväittää = vaatia("väittää");
konst testi = vaatia("solmu: testi");
Tässä on esimerkki yksinkertaisesta testistä, jossa käytetään testirunner-moduulia:
testata("Tarkista, ovatko merkkijonot samat", (t) => {
assert.strictEqual("testata", "testata");
});
Testin suorittajan näyttämät testitulokset tulevat sisään TAP (Test Anything Protocol) muoto. Huomaa, että tämä ominaisuus on vielä kokeellinen ja voi muuttua milloin tahansa.
4. Muut päivitykset ja korjaukset
Node v18 -päivitys sisältää myös päivityksen v8-moottoriin versioon 10.1. V8-moottori on JavaScript-ajoaika, jota NodeJS käyttää JavaScriptin suorittamiseen.
V8-päivitys tekee matriisimenetelmiäetsiViimeinen ja FindLastIndex saatavilla NodeJS: ssä ja parantaa luokkakenttien ja yksityisten luokkamenetelmien suorituskykyä.
NodeJS paljastaa myös seuraavat API: t maailmanlaajuisessa laajuudessa Node v18 -päivityksessä:
- Möykky
- BrodcastChannel
Päivitys Node v18:aan
Node v18:lla voit testata koko sovellusta ilman ulkoisia kirjastoja, noutaa resursseja asynkronisesti ilman ulkoisia kirjastoja ja ottaa verkkovirrat käyttöön palvelimessasi.
On kuitenkin syytä huomata, että nämä ominaisuudet ovat vielä kokeellisia ja voivat muuttua milloin tahansa. Voit päivittää NodeJS v18:aan käyttämällä virallinen latauslinkki.