JavaScriptben ez a ' window.fetch() ” módszerrel. Azonban a „ node.js ”, ez a funkció több csomag használatával is elérhető, például csomópont-lehívás stb.
Ez a blog a következő tartalmi területeket ismerteti:
- Mi az a „csomópont-lehívás”?
- A node-fetch használatának előfeltételei.
- Hogyan készítsünk HTTP-kéréseket a node.js-ben a node-fetch funkcióval?
- Hogyan kezdjük el a csomópont-lehívást?
- Kérések küldése csomópont-lehíváson keresztül.
- JSON-adatok lekérése a Rest API-ból.
- Feladási kérések Node-fetch-en keresztül.
- Mik azok a HTTP állapotkódok?
- Megbirkózni a kivételekkel és korlátokkal.
- A csomópont-lehívás egyéb felhasználási esetei.
- Következtetés
Mi az a „csomópont-lehívás”?
A ' node-fetch ” egy könnyű modulnak felel meg, amely elérhetővé teszi a lekérési API-t a node.js számára. Ez a modul lehetővé teszi a felhasználók számára a „ fetch() ” metódus a node.js-ben, amely leginkább a JavaScript-hez hasonló window.fetch() ” módszerrel.
Szintaxis(fetch() metódus)
elhozni ( url [ , lehetőségek ] ) ;
Ebben a szintaxisban:
- ' url ” a lehívandó/lekérendő erőforrás URL-címére utal.
- A ' lehetőségek ' paraméterre akkor van szükség, ha a 'fetch()' metódus használatára van szükség a ' KAP ' kérés.
Visszatérési érték
Ez a funkció a HTTP-válaszra vonatkozó információkat tartalmazó Response objektumot kéri le az alábbiak szerint:
- szöveg: Lekéri a válasz törzsét karakterlánc formájában.
- fejlécek: Egy objektumot ad vissza, amely a válaszkezelőket tartalmazza.
- json(): Elemezi a válasz törzsét egy JSON-objektumban.
- statustext/status: Tartalmazza a HTTP állapotkóddal kapcsolatos információkat.
- rendben: ad' igaz ” ha az állapot 2xx állapotkód.
A node-fetch használatának előfeltételei
Az alábbiak azok az előfeltételek, amelyeket figyelembe kell venni, mielőtt elkezdené a „ node-fetch ”:
- Legalább vagy a legújabb, mint a 17.5-ös verzió telepítve.
- JavaScript alapismeretek.
Hogyan készítsünk HTTP-kéréseket a node.js-ben a node-fetch funkcióval?
A HTTP kérések előállítása aszinkron eljárás, mivel a kért válasz fogadása eltart egy ideig. Ez olyan, hogy az aszinkron eljárások felhasználására két módszer létezik. Az első az, hogy a felhasználó megvárhatja a választ, majd folytathatja a kóddal. A másik párhuzamosan hajtja végre a kódot.
Hogyan kezdjük el a csomópont-lehívást?
Mielőtt elkezdené vagy telepítené a „ node-fetch ” modul, inicializáljon egy csomópont-projektet az alábbi parancs segítségével:
npm init - és
A parancs végrehajtása létrehoz egy ' package.json ” fájlt az aktuális könyvtárban, az alábbiak szerint:
Most telepítse a „ node-fetch ” modult a következő parancsmag használatával:
npm telepítési csomópont - elhozni
A célmodul verziójának telepítéséhez azonban használja a következő parancsot:
npm telepítési csomópont - fetch@ 2.0Ebben az esetben a „ 2.0 ” verziójú modul telepítésre kerül.
Jegyzet: Mielőtt folytatná a példákkal, hozzon létre egy „ index.mjs ” fájlt a munkaterületen, amelyet a funkciók alkalmazására használunk.
1. példa: Kérések küldése csomópont-lehíváson keresztül
A ' node-fetch ” modul használható szövegek lekérésére egy webszerverről, vagy az adatok Rest API-n keresztül.
Az alábbi kódpélda a létrehozott ' index.mjs ” fájl egy egyszerű Get kérést küld a YouTube kezdőlapjára:
import elhozni tól től 'node-fetch' ;elhozni ( 'https://youtube.com' )
. akkor ( res => res. szöveg ( ) )
. akkor ( szöveg => konzol. log ( szöveg ) ) ;
Ezekben a kódsorokban:
- Töltse be a ' node-fetch ” modult, és letöltheti a YouTube kezdőlapját azon a megadott URL-címen keresztül, amelyre a HTTP-kérés érkezik.
- Ezt követően láncolja a „ akkor() ” módszerek a beküldött kérés válaszának és adatainak kezelésére.
- Az előbbi „then()” metódus azt jelzi, hogy várni kell a válaszra a YouTube-szervertől, és szöveges formátumba alakítani.
- Az utóbbi „then()” metódus az előző átalakítás eredményére való várakozást jelöli, és megjeleníti a konzolon.
Kimenet
Most futtassa a kódot a következő parancsmagon keresztül:
csomópont index. mjsA fenti parancs végrehajtása a konzolon megjelenő YouTube kezdőlap teljes HTML-jelölésének lekérését eredményezi:
2. példa: JSON-adatok lekérése a Rest API-ból
Ez a példa a „ node-fetch ” hamis adatok beszerzéséhez a JSONPlaceholder RestAPI. Ez olyan, hogy a „ fetch() ” metódus tartalmazza a szerver URL-jét, és válaszra vár:
import elhozni tól től 'node-fetch' ;elhozni ( „https://jsonplaceholder.typicode.com/users” )
. akkor ( res => res. json ( ) )
. akkor ( json => {
konzol. log ( 'First Array User ->' ) ;
konzol. log ( json [ 0 ] ) ;
konzol. log ( 'First Array User Name -> ' ) ;
konzol. log ( json [ 0 ] . név ) ;
} )
Ennek a kódblokknak megfelelően hajtsa végre a következő lépéseket:
- A HTTPS törzs JSON formátumú adatokat tartalmaz, amelyek a felhasználó adatait tartalmazzák.
- Ezt követően a „ json() ” függvényt alkalmazzuk az egyes bejegyzések és a megfelelő értékek meghívására.
Kimenet
Alkalmazza az alábbi parancsmagot a kód végrehajtásához:
csomópont index. mjs
3. példa: Feladási kérelmek csomópont-lehíváson keresztül
A ' node-fetch ” modul is használható a kérések feladására ahelyett, hogy lekérnénk őket. Ezt a „ fetch() ” metódus, amely egy további paramétert is tartalmaz a POST kérések kiszolgálóhoz történő küldéséhez.
Ezzel a paraméterrel több lehetőség is hozzárendelhető. Ebben az esetben azonban a „ módszer ', ' test ” és „ fejlécek ' használva lesz. Az alábbiakban az egyes lehetőségek leírása található:
- A ' módszer ” opció beállítja a HTTP-kérések típusát, azaz a „POST”-ot ebben a forgatókönyvben.
- A ' test ” opció tartalmazza a kérés törzsét.
- A ' fejléc ” opció tartalmazza az összes szükséges fejlécet, azaz: „ Tartalom típus ” ebben a forgatókönyvben.
Most folytassa a bejegyzéskérések elküldésének gyakorlati megvalósításával úgy, hogy új elemet fűz hozzá a JSON-helyőrző ' minden ”. Ez úgy történik, hogy hozzáadunk egy új elemet a listához, amelynek felhasználói azonosítója „476”:
import elhozni tól től 'node-fetch' ;engedj mindent = {
Felhasználói azonosító : 476 ,
webhely : 'Ez Linuxhint' ,
elkészült : hamis
} ;
elhozni ( „https://jsonplaceholder.typicode.com/todos” , {
módszer : 'POST' ,
test : JSON. szigorít ( minden ) ,
fejlécek : { 'Tartalom típus' : 'applikáció/json' }
} ) . akkor ( res => res. json ( ) )
. akkor ( json => konzol. log ( json ) ) ;
Ebben a kódban:
- Először is hozzon létre egy teendőobjektumot, és alakítsa át JSON-ba, miközben hozzáfűzi a törzshöz.
- Most hasonlóképpen adja meg az URL-t a szükséges beállításokkal, mint ' fetch() ” metódus választható paraméterei.
- Ezt követően alkalmazza a „ JSON.stringify() ” metódussal alakíthatja át az objektumot formázott (JSON) karakterláncsá, mielőtt elküldené/küldené a webszervernek.
- Ha előre haladunk, hajtsuk végre a kombinált „ akkor() ” módszerekkel kérheti le az adatokat úgy, hogy megvárja a választ, átalakítja azokat JSON-ba, majd bejelentkezik a konzolra.
Kimenet
A kód végrehajtásához hajtsa végre az alábbi parancsot:
csomópont index. mjs
Mik azok a HTTP állapotkódok?
Mielőtt továbblépne a következő példára, győződjön meg arról, hogy ha a válasz egy ' 3xx ” állapotkód, a plusz lépéseket az ügyfélnek kell megtennie. Hasonlóképpen a „ 4xx ' kódok érvénytelen kérést jelentenek, és a ' 5xx ” kódok a szerverhibáknak felelnek meg.
Jegyzet: A ' fogás() ” funkció nem tud megbirkózni a fent tárgyalt esetekkel, mivel a szerver kommunikáció áramvonalasan megy végbe. Ezért hatékony módszer annak biztosítására, hogy a sikertelen kérések a hibát adják vissza, ha meghatározunk egy függvényt, amely elemzi a kiszolgáló válaszának HTTP-állapotát.
4. példa: Megbirkózni a kivételekkel és korlátokkal
Számos korlátozás vagy kivétel lehet az elküldött kérelmekkel kapcsolatban, például az internettel kapcsolatos problémák, ' fetch() ' funkció korlátozásai stb. Ezeket a kivételeket a ' fogás() ” funkció:
függvényelemzésStatus ( x ) {ha ( x. rendben ) {
Visszatérés x
} más {
dobás új Hiba ( `HTTP állapot a válasz tekintetében -> $ { x. állapot } ( $ { x. statusText } ) ` ) ;
}
}
elhozni ( „https://jsonplaceholder.typicode.com/MissingResource” )
. akkor ( elemziStatus )
. akkor ( x => x. json ( ) )
. akkor ( json => konzol. log ( json ) )
. fogás ( téved => konzol. log ( téved ) ) ;
Ebben a kódrészletben:
- Először is definiáljon egy függvényt, amely rendelkezik a megadott paraméterrel, mielőtt elemzi a választ, hogy megbirkózzon a felmerülő korlátokkal.
- Most foglalja bele a „ ha más ” utasításokat a szembesült hiba vagy egyéni korlátozás kidobásához.
- Ezt követően hasonlóan alkalmazza a „ fetch() ” metódus és a kapcsolódó „then()” metódusok az adatok lekéréséhez úgy, hogy megvárja a választ, átalakítja azokat JSON-ba, és bejelentkezik a konzolba.
- Végül a futásidejű kivételek kezelhetők a „ fogás() ” módszer az ígéretlánc végén.
Kimenet
Végül futtassa az alábbi parancsmagot a kód futtatásához, és dobja ki a szembetűnő kivételeket:
csomópont index. mjs
A „csomópont-lehívás” egyéb használati esetei
A ' node-fetch '' készítésére is használható API kérések ” vagy „ Webkaparás ”. Beszéljük meg ezeket a felhasználási eseteket részletesen.
A csomópont-lehívás használata API-kérések készítéséhez
Az API-ra több forgatókönyvben is szükség lehet a céladatok háttérforráson keresztüli lekéréséhez. A HTTP-kérelmek számos hitelesítési módszert tartalmazhatnak, például API-kulcsot használnak, ahol az API-szolgáltató olyan kulcsot biztosít, amely csak a felhasználóra korlátozódik. Az API árnyékolásának másik módja a „ Alapszintű hitelesítés ”, amelyben az API meghívásához fejlécet kell küldeni.
Az alábbiakban az utóbbi megközelítés bemutatása látható, azaz az „Alap hitelesítés” posta kérésben a „ fetch() ” módszer:
( async ( ) => {const x = várni kell ( „http://httpbin.org/post” , {
módszer : 'POST' ,
fejlécek : {
'Engedélyezés' : `Alap $ { tesó ( 'bejelentkezési jelszó' ) } `
} ,
test : JSON. szigorít ( {
'kulcs' : 'érték'
} )
} ) ;
const eredmény = várj x-et. szöveg ( ) ;
konzol. log ( eredmény ) ;
} ) ( ) ;
A fenti demonstrációban egy fejlécet küldünk egy „ alap64 ' kódolt karakterlánc a formátumban ' bejelentkezési jelszó ”.
Csomópont-lehívás használata a webkaparáshoz
' Webkaparás ” arra a technikára utal, amellyel az adatokat/tartalmat lekérik a webhelyekről és elemzik. Ez az elemzés a „ viszlátot mond ” könyvtár.
Az alábbiakban bemutatjuk, hogyan lehet lekérni az oldal címét a „ fetch() ' módszer és ' viszlátot mond ” könyvtár:
const lib = igényelnek ( 'éljenzés' ) ;( async ( ) => {
const x = várni kell ( „https://linuxhint.com/” ) ;
const és = várj x-et. szöveg ( ) ;
const $ = lib. Betöltés ( és ) ;
konzol. log ( $ ( 'cím' ) . első ( ) . szöveg ( ) ) ;
} ) ( ) ;
Ez a példa lekéri a ' Linux ” webhely címe.
Következtetés
A node.js-ben található HTTP-kérelmek csomópont-lekéréssel hajthatók végre get-kérések küldésével, JSON-adatok lekérésével a REST API-ból vagy bejegyzési kérelmek küldésével. Ezenkívül a kivételek és korlátozások hatékonyan kezelhetők a „ fogás() ” funkciót.