Tämä opas selittää HTTP-pyyntöjen tekemisen Node.js-pyyntömoduulilla kattamalla seuraavat osiot:
Kuinka tehdä HTTP-pyyntöjä Node.js-pyyntömoduulilla?
Node.js-pyyntömoduulin vaihtoehdot
- Tapa 1: HTTP-pyyntöjen tekeminen oletusarvoisen HTTP-moduulin avulla
- Tapa 2: HTTP-pyynnön tekeminen ulkoisen Axios-moduulin avulla
Kuinka tehdä HTTP-pyyntöjä Node.js-pyyntömoduulin avulla?
' pyyntö ”-moduuli on yksinkertaisin moduuli, joka auttaa HTTP-pyyntöjen lähettämisessä tai hakemisessa. Tämä moduuli on liian yksinkertainen ja helppo ymmärtää, mutta se tarjoaa hyvin vähän vapautta kehittäjille. Lisäksi kehittäjä ei voi helposti muokata sen perustoimintoja tai parantaa sen tarjoamia ominaisuuksia.
Huomautus: Vaikkakin ' pyyntö ” on hyvä moduuli. Sen tekijät päättivät kuitenkin lopettaa työskentelyn tämän moduulin parissa, ja se poistettiin kokonaan käytöstä 11. helmikuuta 2020.
Jos kuitenkin haluat vielä saada käsityksen tämän toteutuksesta pyyntö ” -moduulissa, käy sitten alla mainituissa vaiheissa.
Vaihe 1: 'Request'-moduulin asentaminen ja Node.js-projektin alustaminen
Aloita alustamalla ' npm ” paketit haluttuun hakemistoon luodaksesi Node.js-projektin suorittamalla komennon:
npm init - jaTulos näyttää, että 'npm' on alustettu onnistuneesti toimitettuun hakemistoon:
Asenna sitten tarvittava ' pyyntö ”-moduuli suorittamalla komennon:
npm-asennuspyyntöTulos näyttää, että asennus on valmis, mutta koska tämä moduuli on vanhentunut, 'npm' on lähettänyt vanhentuneen varoituksen:
Vaihe 2: Nuken koodin lisääminen
Luo ' .js ”-tyyppinen tiedosto Node.js-projektihakemistossa, se on tiedosto, johon ohjelmat lisätään ja suoritetaan myöhemmin. Lisää sitten alla olevat koodirivit havainnollistamaan ' pyyntö ”-moduuli alla olevan kuvan mukaisesti:
konst reqObj = vaatia ( 'pyyntö' )anna baseUrl = 'https://jsonplaceholder.typicode.com/todos/6' ;
reqObj ( baseUrl, ( ongelmat, sisältö ) => {
jos ( ongelmia ) konsoli. Hirsi ( ongelmia )
konsoli. Hirsi ( sisältö ) ;
} ) ;
Yllä olevan koodilohkon selitys on seuraava:
- Ensinnäkin ' pyyntö ' moduuli on tuotu ja sen objekti on tallennettu uuteen muuttujaan nimeltä ' reqObj ”.
- Seuraavaksi jonkin verkko-JSON-tiedoston URL-osoite, jonka sisältö on haettava, välitetään arvoksi ' baseUrl ”-niminen muuttuja.
- Sitten ' reqObj '-muuttuja kutsutaan rakentajaksi ja ' baseUrl ” välitetään ensimmäisenä parametrina ja takaisinsoittotoiminto toisena parametrina.
- Takaisinsoittotoiminnon sisällä ' jos ” -lausetta käytetään mahdollisten tapahtuneiden virheiden näyttämiseen ja haetut tiedot näkyvät myös konsoli-ikkunassa.
Vaihe 3: Suoritus
Suorita yllä oleva koodi suorittamalla tiedosto nimeltä ' proApp.js ' meidän tapauksessamme käyttämällä komentoa:
solmu proApp. jsSuorituksen jälkeinen tulos näyttää, että määritetyt tiedot on haettu ja esitetty konsolin kautta:
Node.js-pyyntömoduulin vaihtoehdot
' pyyntö ”-moduulissa on paljon uusia ulkoisia moduuleja, joilla voidaan suorittaa samanlaisia toimintoja. Nämä vaihtoehtoiset moduulit on lueteltu alla:
Vaihtoehtoja | Kuvaus |
solmuhaku | Se on lupaus tai stream-pohjainen moduuli, joka tuo window.fetch()-menetelmän Node.js:ään. |
http | ' http ”-moduuli on Node.js:n tarjoama oletusmoduuli, ja se tarjoaa useita tapoja olla vuorovaikutuksessa http-palvelimien kanssa samalla, kun se tarjoaa enemmän vapautta. |
aksiot | Perustuu puhtaasti lupauksiin ja streameihin HTTP-pyyntöjen suorittamiseksi selaimen kautta sekä palvelimelta että asiakaspäältä. |
sain | Se on erittäin ihmisystävällinen ja tehokkain kirjasto HTTP-pyyntöille. |
superagentti | Perustuu ketjutukseen ja lupauksiin samalla kun se tarjoaa tukea monille korkean tason HTTP-asiakkaille. Sillä on myös alhainen oppimiskäyrä. |
taipunut | Se on toiminnallinen HTTP, joka palauttaa async-tyyppisen funktion. |
tehdä-hakea-tapahtua | Parannettu muoto ' solmuhaku ” moduuli. Se sisältää nyt 'pyyntöjen yhdistämisen', 'välimuistin tuen' ja paljon muuta. |
neula | Tämä moduuli on selkein ja eteenpäin suuntautuvin moduuli. Sitä käytetään enimmäkseen tietojen hakemiseen lähettämällä pyyntöjä kolmannen osapuolen lähteille. |
tiny-json-http | Minimalistinen HTTP-asiakas, jota käytetään JSON-hyötykuormien suorittamiseen. |
Suoritetaan nyt HTTP-pyynnöt käyttämällä joitain edellä käsiteltyjä moduuleja.
Tapa 1: HTTP-pyyntöjen tekeminen oletusarvoisen HTTP-moduulin avulla
' http ' on oletusmoduuli, koska se asennetaan automaattisesti node.js-projektin alustuksen yhteydessä suorittamalla komento ' npm init ' tai ' npm init -y ”. Koska olemme jo luoneet node.js-projektin, ohitamme tämän artikkelin alussa esitetyt alustusvaiheet ja siirrymme suoraan http-pyyntöjen luomiseen http-moduulin avulla.
Alla olevassa koodinpätkässä palvelin on luotu ja vastauksena valeviesti lähetetään palvelimelle:
konst httpObj = vaatia ( 'http' ) ;konst paikallinen palvelin = httpObj. createServer ( ( pyyntö, vastaus ) => {
vastaus. kirjoittaa ( 'Tervetuloa Twitter-sivulle' ) ;
vastaus. loppu ( ) ;
} ) ;
paikallinen palvelin. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( 'palvelin alkoi portista 8080.' ) ;
} ) ;
Yllä olevassa koodilohkossa:
- Ensinnäkin ' http ' moduuli on tuotu nykyisen tiedoston sisään ja sen objekti on tallennettu uuteen muuttujaan nimeltä ' httpObj ”.
- Seuraavaksi palvelin nimeltä ' paikallinen palvelin ' luodaan kutsumalla ' createServer() ” -menetelmää ja antaa takaisinsoittofunktion parametriksi.
- Kutsu tämän funktion sisällä ' kirjoittaa() ” -menetelmää ja määritä sille valeviesti, joka näytetään palvelimen yli. Sulje myös vastausistunto kutsumalla ' loppu () ” -viesti, satunnainen dummy-sanoma voidaan lisätä myös metodisulkujen sisään.
- Tämän jälkeen aseta tämä palvelin suorittamaan paikallispalvelimen kautta, jonka porttinumero on ' 8080 ' kutsumalla ' kuunnella() ”menetelmä.
Suorita yllä oleva koodi sisältävä tiedosto suorittamalla alla oleva komento:
solmu < Tiedoston nimi. js >Luotu tulos vahvistaa, että HTTP-pyynnöt on suoritettu oletusarvon kautta http ” moduuli:
Tapa 2: HTTP-pyynnön tekeminen ulkoisen Axios-moduulin avulla
' aksiot ” on suosituin ja laajimmin käytetty moduuli HTTP-pyyntöjen suorittamisessa reaaliaikaisessa ympäristössä. Käyttääksesi tätä moduulia, kehittäjän on ensin asennettava se suorittamalla alla oleva komento:
npm asennus axiosKomennon suorittamisen jälkeen pääte näyttää tältä:
Katsotaanpa nyt esimerkkiä, jossa ' SAADA ” HTTP-pyyntöä käytetään tietojen hakemiseen satunnaisesta API:sta. Sitten vastaanotetut tiedot näkyvät myös konsolin yli:
konst axiosObj = vaatia ( 'aksiot' ) ;// JSON-paikkamerkkisovellusliittymän URL-osoite Valitse vain osa tiedoista, joiden tunnus on 5
konst apiUrl = 'https://jsonplaceholder.typicode.com/todos/5' ;
//GET-pyynnön alustaminen
axiosObj. saada ( apiUrl )
. sitten ( vastaus => {
konsoli. Hirsi ( 'API:n vastauksen tila on:' , vastaus. Tila ) ;
konsoli. Hirsi ( 'API:lta saadut tiedot vastauksena pyyntöön:' , vastaus. tiedot ) ;
} )
. ottaa kiinni ( virhe => {
konsoli. virhe ( 'Virhe on tapahtunut:' , virhe ) ;
} ) ;
Yllä olevan koodilohkon selitys on esitetty alla:
- Tuo ensin ' aksiot ' -kirjasto ja tallenna sen esiintymä muuttujaan nimeltä ' axiosObj ', joka toimii 'axios'-kirjaston objektina.
- Luo seuraavaksi muuttuja ' apiUrl ” ja tallenna sen API:n URL-osoite, josta tiedot on haettava. Meidän tapauksessamme URL-osoite on ' https://jsonplaceholder.typicode.com/todos/5 ', koska haluamme hakea tietoja, joiden tunnus on ' 5 ”.
- Nyt '' axiosObj ' kutsua ' saada() ' -menetelmää ja välitä ' appURL ”-muuttuja tämän menetelmän suluissa.
- Kiinnitä ' sitten() ' menetelmällä ' saada() ' -menetelmää ja luo anonyymi nuolifunktio, joka sisältää yhden parametrin ' vastaus ”.
- Tämä ' vastaus ” toimii objektina, joka sisältää arvot tai tiedot, jotka palautettiin vastauksena pyyntöön ” saada() ”menetelmä.
- Tämän avulla ' vastaus ' -objekti, noutaa pyynnön ja sisällön tilan liittämällä ' Tila ' ja ' tiedot ”avainsanat vieressä.
- Liitä lopuksi ' ottaa kiinni() ” -menetelmä, joka näyttää virheet, jos niitä on tapahtunut ohjelman suorittamisen aikana.
Käännä nyt yllä oleva koodi Node.js-ympäristössä käyttämällä alla olevaa komentoa terminaalissa:
solmu < Tiedoston nimi >Näytössä oleva tulos osoittaa, että pyydetyt tiedot on haettu annetusta lähteestä vastauksena ja näytetään konsoliikkunassa:
Siinä kaikki HTTP-pyyntöjen tekeminen Node.js-pyyntömoduulin avulla ja nopea yleiskatsaus sen vaihtoehdoista.
Johtopäätös
HTTP-pyynnön tekeminen ' pyyntö ”-moduuli, vaadittu URL-osoite, josta haku suoritetaan. Sitten luodaan 'pyyntö'-moduulin esiintymä ja valittu URL-osoite, jolle HTTP-pyyntö on toteutettava, välitetään ensimmäisenä parametrina. Vaadittua takaisinsoittotoimintoa käytetään myös mahdollisten virheiden tarkistamiseen ja HTTP-pyynnön sisällön tai vastauksen hakemiseen. Tässä oppaassa on selitetty HTTP-pyyntöjen tekeminen pyyntömoduulin avulla.