Tato příručka vysvětluje postup vytváření požadavků HTTP pomocí modulu požadavků Node.js tím, že pokryje následující části:
Jak vytvářet požadavky HTTP pomocí modulu požadavků Node.js?
Alternativy modulu požadavků Node.js
- Metoda 1: Vytváření požadavků HTTP pomocí výchozího modulu HTTP
- Metoda 2: Vytvoření požadavku HTTP pomocí externího modulu Axios
Jak vytvářet požadavky HTTP pomocí modulu požadavků Node.js?
' žádost ” modul je nejpřímější modul, který pomáhá při odesílání nebo získávání požadavků HTTP. Tento modul je příliš jednoduchý a snadno pochopitelný, ale vývojářům poskytuje velmi malou svobodu. Vývojář navíc nemůže snadno upravit jeho základní funkce nebo vylepšit poskytované funkce.
Poznámka: Ačkoliv ' žádost “ je dobrý modul. Jeho tvůrci se však rozhodli na tomto modulu přestat pracovat a 11. února 2020 byl zcela ukončen.
Pokud si však přesto přejete získat představu o implementaci tohoto „ žádost ” pak navštivte níže uvedené kroky.
Krok 1: Instalace modulu „request“ a inicializace projektu Node.js
Začněte inicializací „ npm ” balíčky v požadovaném adresáři pro vytvoření projektu Node.js spuštěním příkazu:
npm init - aVýstup ukazuje, že „npm“ byl úspěšně inicializován v poskytnutém adresáři:
Poté nainstalujte požadovaný „ žádost ” modul provedením příkazu:
požadavek na instalaci npmVýstup ukazuje, že instalace byla dokončena, ale protože tento modul je zastaralý, proto bylo „npm“ odesláno zastaralé varování:
Krok 2: Vložení fiktivního kódu
Vytvořit ' .js ” v adresáři projektu Node.js, je to soubor, do kterého se programy vkládají a spouštějí později. Poté vložte níže uvedené řádky kódu pro ilustraci praktické implementace „ žádost “, jak je znázorněno níže:
konst reqObj = vyžadovat ( 'žádost' )nechat baseUrl = 'https://jsonplaceholder.typicode.com/todos/6' ;
reqObj ( baseUrl, ( problémy, obsah ) => {
-li ( problémy ) řídicí panel. log ( problémy )
řídicí panel. log ( obsah ) ;
} ) ;
Vysvětlení výše uvedeného bloku kódu je následující:
- Za prvé, „ žádost “ modul byl importován a jeho objekt je uložen v nové proměnné s názvem “ reqObj “.
- Dále se předá URL nějakého online souboru JSON, jehož obsah je třeba načíst, jako hodnota pro „ baseUrl ” pojmenovaná proměnná.
- Poté, „ reqObj proměnná ” se vyvolá jako konstruktor a proměnná “ baseUrl ” je předán jako jeho první parametr a funkce zpětného volání jako druhý parametr.
- Uvnitř funkce zpětného volání je „ -li ” se používá k zobrazení všech vzniklých chyb a načtená data se také zobrazují nad oknem konzoly.
Krok 3: Provedení
Chcete-li spustit výše uvedený kód, spusťte obsahující soubor s názvem „ proApp.js ” v našem případě pomocí příkazu:
uzel proApp. jsVýstup po spuštění ukazuje, že zadaná data byla načtena a zobrazena přes konzolu:
Alternativy modulu požadavků Node.js
Vzhledem k ukončení podpory „ žádost “, existuje mnoho nových externích modulů, které lze použít k provedení podobné funkce. Tyto alternativní moduly jsou uvedeny níže:
Alternativy | Popis |
node-fetch | Je to modul založený na slibu nebo streamu, který přináší metodu window.fetch() v Node.js. |
http | ' http ” modul je výchozí modul poskytovaný Node.js a poskytuje několik metod pro interakci s http servery a zároveň poskytuje větší svobodu. |
axios | Čistě na základě slibů a streamů provádět požadavky HTTP přes prohlížeč ze serveru i klienta. |
dostal | Je to super uživatelsky přívětivá a nejvýkonnější knihovna pro požadavky HTTP. |
superagent | Založeno na řetězení a slibech při poskytování podpory pro mnoho klientů HTTP na vysoké úrovni. Má také nízkou křivku učení. |
ohnutý | Je to funkční HTTP, který vrací funkci asynchronního typu. |
udělat-přinést-uskutečnit | Vylepšená forma „ node-fetch “modul. Nyní zahrnuje „sdružování požadavků“, „podporu mezipaměti“ a mnoho dalších věcí. |
jehla | Tento modul je nejpřehlednější a nejpokročilejší modul. Většinou se používá k získávání dat odesíláním požadavků na zdroje třetích stran. |
tiny-json-http | Minimalistický klient HTTP používaný k provádění datových částí JSON. |
Nyní provedeme požadavky HTTP s využitím některých výše uvedených modulů.
Metoda 1: Vytváření požadavků HTTP pomocí výchozího modulu HTTP
' http “ je výchozí modul, protože se automaticky nainstaluje v době inicializace projektu node.js spuštěním příkazu “ npm init “ nebo „ npm init -y “. Protože jsme již vytvořili projekt node.js, přeskočíme inicializační kroky uvedené na začátku tohoto článku a ponoříme se přímo do vytváření http požadavků pomocí modulu „http“.
V níže uvedeném úryvku kódu byl vytvořen server a jako odpověď je na server odeslána fiktivní zpráva:
konst httpObj = vyžadovat ( 'http' ) ;konst localServer = httpObj. createServer ( ( vyžádat odpověď ) => {
Odezva. napsat ( „Vítejte na stránce Twitter“ ) ;
Odezva. konec ( ) ;
} ) ;
localServer. poslouchat ( 8080 , ( ) => {
řídicí panel. log ( 'server začal na portu číslo 8080.' ) ;
} ) ;
Ve výše uvedeném bloku kódu:
- Za prvé, „ http “ modul byl importován do aktuálního souboru a jeho objekt je uložen v nové proměnné s názvem “ httpObj “.
- Dále server s názvem „ localServer “ je vytvořeno vyvoláním „ createServer() ” a předání funkce zpětného volání jako jejího parametru.
- Uvnitř této funkce vyvolejte „ napsat() ” a přiřadit mu fiktivní zprávu, která se zobrazí na serveru. Také zavřete relaci odpovědi vyvoláním „ konec() ” může být náhodná fiktivní zpráva vložena také do závorky metody.
- Poté nechte tento server spustit přes localhost s číslem portu „ 8080 “ vyvoláním „ poslouchat() “ metoda.
Spusťte výše uvedený kód obsahující soubor spuštěním níže uvedeného příkazu:
uzel < název souboru. js >Vygenerovaný výstup potvrzuje, že požadavky HTTP byly provedeny prostřednictvím výchozího „ http modul:
Metoda 2: Vytvoření požadavku HTTP pomocí externího modulu Axios
' axios ” je nejoblíbenější a nejrozšířenější modul, pokud jde o provádění HTTP požadavků v prostředí reálného času. Chcete-li tento modul použít, musí jej vývojář nejprve nainstalovat provedením níže uvedeného příkazu:
npm nainstalovat axiosPo provedení příkazu se terminál zobrazí takto:
Nyní se podívejme na příklad, ve kterém „ DOSTAT ” HTTP požadavek bude použit k načtení dat z náhodného API. Poté se přijatá data zobrazí také přes konzolu:
konst axiosObj = vyžadovat ( 'axios' ) ;// Adresa URL rozhraní JSON Placeholder API Pro výběr pouze části dat s ID 5
konst apiUrl = 'https://jsonplaceholder.typicode.com/todos/5' ;
//Inicializace požadavku GET
axiosObj. dostat ( apiUrl )
. pak ( Odezva => {
řídicí panel. log ( 'Stav pro odpověď z API je:' , Odezva. postavení ) ;
řídicí panel. log ( 'Data přijatá z API jako odpověď na požadavek:' , Odezva. data ) ;
} )
. chytit ( chyba => {
řídicí panel. chyba ( 'Došlo k chybě:' , chyba ) ;
} ) ;
Vysvětlení výše uvedeného bloku kódu je uvedeno níže:
- Nejprve importujte „ axios ” knihovny a uložte její instanci do proměnné s názvem “ axiosObj “, který funguje jako objekt knihovny „axios“.
- Dále vytvořte proměnnou ' apiUrl “ a uložte adresu URL rozhraní API, ze kterého je třeba data načíst. V našem případě je adresa URL „ https://jsonplaceholder.typicode.com/todos/5 “, protože chceme získat data, která mají ID „ 5 “.
- Nyní s pomocí „ axiosObj 'vyvolat' dostat() “ a předejte “ appURL ” proměnná uvnitř této závorky metody.
- Připojte „ pak() “ metoda s “ dostat() “ a vytvořte anonymní funkci šipky, která obsahuje jeden parametr „ Odezva “.
- Tento ' Odezva “ se chová jako objekt obsahující hodnoty nebo data vrácená v reakci na požadavek prostřednictvím „ dostat() “ metoda.
- S pomocí tohoto „ Odezva “, načtěte stav požadavku a obsah připojením “ postavení ' a ' data “ klíčová slova vedle něj.
- Nakonec připojte „ chytit() ” metoda, která zobrazuje chyby, pokud se nějaké vyskytly během provádění programu.
Nyní zkompilujte výše uvedený kód v prostředí Node.js pomocí níže uvedeného příkazu na terminálu:
uzel < název souboru >Zobrazený výstup ukazuje, že požadovaná data byla načtena z poskytnutého zdroje jako odpověď a zobrazena v okně konzoly:
To je vše o vytváření požadavků HTTP pomocí modulu požadavků Node.js a rychlého přehledu jeho alternativ.
Závěr
Chcete-li vytvořit požadavek HTTP prostřednictvím „ žádost ”, požadovaná adresa URL, ze které se bude načítání provádět. Poté se vytvoří instance modulu „request“ a jako první parametr se předá vybraná adresa URL, pro kterou je třeba implementovat požadavek HTTP. Požadovaná funkce zpětného volání se také používá ke kontrole případných chyb a načtení obsahu nebo odpovědi na požadavek HTTP. Tato příručka vysvětluje proces vytváření požadavků HTTP pomocí modulu požadavků.