In deze handleiding wordt de procedure uitgelegd voor het indienen van HTTP-verzoeken met de Node.js-verzoekmodule door de onderstaande secties te behandelen:
Hoe maak ik HTTP-verzoeken met de Node.js-verzoekmodule?
Alternatieven voor de Node.js-aanvraagmodule
- Methode 1: HTTP-verzoeken indienen met behulp van de standaard HTTP-module
- Methode 2: HTTP-verzoek indienen met behulp van de externe Axios-module
Hoe kan ik HTTP-verzoeken indienen met de Node.js-verzoekmodule?
De ' verzoek ”-module is de meest eenvoudige module die helpt bij het verzenden of ophalen van HTTP-verzoeken. Deze module is te eenvoudig en gemakkelijk te begrijpen, maar biedt ontwikkelaars zeer weinig vrijheid. Bovendien kan de ontwikkelaar de basisfunctionaliteit niet gemakkelijk wijzigen of de aangeboden functies verbeteren.
Opmerking: Hoewel de ' verzoek ” is een goede module. De makers ervan besloten echter te stoppen met werken aan deze module en deze werd op 11 februari 2020 volledig beëindigd.
Als u echter toch een idee wilt krijgen over de implementatie hiervan “ verzoek ”-module en volg dan de onderstaande stappen.
Stap 1: De “request” -module installeren en het Node.js-project initialiseren
Begin met het initialiseren van de “ npm ”-pakketten in de gewenste map om een Node.js-project te maken door de opdracht uit te voeren:
npm init - EnDe uitvoer laat zien dat de “npm” met succes is geïnitialiseerd in de opgegeven map:
Installeer vervolgens de vereiste “ verzoek ”-module door het commando uit te voeren:
npm-installatieverzoekDe uitvoer laat zien dat de installatie is voltooid, maar omdat deze module verouderd is, is daarom de verouderde waarschuwing verzonden door de “npm”:
Stap 2: Dummycode invoegen
Maak een ' .js ” type bestand in de Node.js-projectmap, het is het bestand waarin de programma's worden ingevoegd en later worden uitgevoerd. Voeg vervolgens de onderstaande coderegels in om de praktische implementatie van de “ verzoek ”-module, zoals hieronder weergegeven:
const verzoekObj = vereisen ( 'verzoek' )laat baseUrl = 'https://jsonplaceholder.typicode.com/todos/6' ;
verzoekObj ( basisUrl, ( problemen, inhoud ) => {
als ( problemen ) troosten. loggen ( problemen )
troosten. loggen ( inhoud ) ;
} ) ;
De uitleg van het bovenstaande codeblok is als volgt:
- Eerst de ' verzoek ' module is geïmporteerd en het object ervan is opgeslagen in een nieuwe variabele met de naam ' verzoekObj ”.
- Vervolgens wordt de URL van een online JSON-bestand waarvan de inhoud moet worden opgehaald, doorgegeven als de waarde voor de “ basisUrl ' genoemde variabele.
- Dan de ' verzoekObj ”variabele wordt aangeroepen als de constructor, en de “ basisUrl ” wordt doorgegeven als de eerste parameter en de callback-functie als de tweede parameter.
- Binnen de callback-functie, de “ als ”-instructie wordt gebruikt om eventuele opgetreden fouten weer te geven en de opgehaalde gegevens worden ook weergegeven via het consolevenster.
Stap 3: Uitvoering
Om de bovenstaande code uit te voeren, voert u het bevattende bestand met de naam “ proApp.js ”in ons geval met behulp van het commando:
knooppunt proApp. jsDe uitvoer na uitvoering laat zien dat de opgegeven gegevens zijn opgehaald en weergegeven via de console:
Alternatieven voor de Node.js-aanvraagmodule
Door het afschaffen van de “ verzoek ”-module zijn er veel nieuwe externe modules die kunnen worden gebruikt om vergelijkbare functionaliteit uit te voeren. Deze alternatieve modules worden hieronder vermeld:
Alternatieven | Beschrijving |
knooppunt ophalen | Het is een belofte- of streamgebaseerde module die een window.fetch() -methode in Node.js brengt. |
http | De ' http ”-module is de standaardmodule van Node.js en biedt verschillende methoden voor interactie met http-servers en biedt tegelijkertijd meer vrijheid. |
axioma's | Puur gebaseerd op beloften en streams om HTTP-verzoeken via de browser uit te voeren, zowel vanaf de server als de client. |
gekregen | Het is super mensvriendelijk en de krachtigste bibliotheek voor HTTP-verzoeken. |
superagent | Gebaseerd op ketens en beloftes en tegelijkertijd ondersteuning biedend voor veel HTTP-clients op hoog niveau. Het heeft ook een lage leercurve. |
krom | Het is een functionele HTTP die een asynchrone functie retourneert. |
make-fetch-gebeurt | Een verbeterde vorm van “ knooppunt ophalen ”module. Het omvat nu “request pooling”, “cache support” en nog veel meer dingen. |
naald | Deze module is de duidelijkste en meest vooruitstrevende module. Het wordt meestal gebruikt om gegevens op te halen door verzoeken naar externe bronnen te sturen. |
tiny-json-http | Minimalistische HTTP-client gebruikt om de JSON-payloads uit te voeren. |
Laten we nu HTTP-verzoeken uitvoeren door gebruik te maken van enkele hierboven besproken modules.
Methode 1: HTTP-verzoeken indienen met behulp van de standaard HTTP-module
De ' http ” is een standaardmodule omdat deze automatisch wordt geïnstalleerd op het moment dat het node.js-project wordt geïnitialiseerd door de opdracht “ npm init ' of ' npm init-y ”. Omdat we al een node.js-project hebben gemaakt, slaan we de initialisatiestappen over die aan het begin van dit artikel zijn gedemonstreerd en duiken we direct in het maken van http-verzoeken met behulp van de “http”-module.
In het onderstaande codefragment is de server aangemaakt en als reactie wordt het dummybericht naar de server verzonden:
const httpObj = vereisen ( 'http' ) ;const lokale server = httpObj. creëerServer ( ( aanvraag antwoord ) => {
antwoord. schrijven ( 'Welkom op de Twitterpagina' ) ;
antwoord. einde ( ) ;
} ) ;
lokale server. luisteren ( 8080 , ( ) => {
troosten. loggen ( 'server gestart op poortnummer 8080.' ) ;
} ) ;
In het bovenstaande codeblok:
- Eerst de ' http De module 'is geïmporteerd in het huidige bestand en het object ervan is opgeslagen in een nieuwe variabele met de naam' httpObj ”.
- Vervolgens wordt de server met de naam “ lokale server ' wordt gemaakt door een beroep te doen op de ' createServer() ”-methode en het doorgeven van de callback-functie als parameter.
- Roep binnen deze functie een “ schrijven() ”-methode en wijs er een dummy-bericht aan toe dat via de server wordt weergegeven. Sluit ook de antwoordsessie door het aanroepen van de “ einde() ”-bericht, kan het willekeurige dummy-bericht ook tussen de haakjes van de methode worden ingevoegd.
- Laat daarna deze server uitvoeren via de localhost met het poortnummer “ 8080 'door een beroep te doen op de' luisteren() methode.
Voer het bovenstaande codebevattende bestand uit door de onderstaande opdracht uit te voeren:
knooppunt < bestandsnaam. js >De gegenereerde uitvoer bevestigt dat HTTP-verzoeken zijn uitgevoerd via de standaard “ http ” module:
Methode 2: HTTP-verzoek indienen met behulp van de externe Axios-module
De ' axioma's ” is de populairste en meest gebruikte module als het gaat om het uitvoeren van HTTP-verzoeken in een realtime omgeving. Om deze module te gebruiken, moet de ontwikkelaar deze eerst installeren door de onderstaande opdracht uit te voeren:
npm installeer axiosNa het uitvoeren van de opdracht ziet de terminal er als volgt uit:
Laten we nu eens kijken naar een voorbeeld waarin de “ KRIJGEN “HTTP-verzoek zal worden gebruikt om de gegevens uit een willekeurige API op te halen. Vervolgens worden de ontvangen gegevens ook via de console weergegeven:
const AxiosObj = vereisen ( 'axios' ) ;// URL van de JSON Placeholder API om slechts een deel van de gegevens met ID 5 te selecteren
const apiUrl = 'https://jsonplaceholder.typicode.com/todos/5' ;
// Het GET-verzoek initialiseren
AxiosObj. krijgen ( apiUrl )
. Dan ( antwoord => {
troosten. loggen ( 'De status voor het antwoord van API is:' , antwoord. toestand ) ;
troosten. loggen ( 'De gegevens ontvangen van de API als antwoord op een verzoek:' , antwoord. gegevens ) ;
} )
. vangst ( fout => {
troosten. fout ( 'De fout is opgetreden:' , fout ) ;
} ) ;
De uitleg van het bovenstaande codeblok staat hieronder:
- Importeer eerst de “ axioma's ”bibliotheek en sla de instantie ervan op in de variabele met de naam “ AxiosObj ', dat fungeert als een object van de 'axios'-bibliotheek.
- Maak vervolgens een variabele “ apiUrl ” en sla de URL op van de API waaruit de gegevens moeten worden opgehaald. In ons geval is de URL “ https://jsonplaceholder.typicode.com/todos/5 ' omdat we gegevens willen ophalen met de ID ' 5 ”.
- Nu, met behulp van “ AxiosObj 'roep de' krijgen() ”-methode en geef de “ appURL ”variabele binnen dit haakje van de methode.
- Bevestig de “ Dan() 'methode met de' krijgen() ”-methode en maak een anonieme pijlfunctie die een enkele parameter bevat van “ antwoord ”.
- Dit ' antwoord ' fungeert als een object dat de waarden of gegevens bevat die zijn geretourneerd als reactie op het verzoek via de ' krijgen() methode.
- Met behulp hiervan “ antwoord ”-object, haal de status van het verzoek en de inhoud op door het “ toestand ' En ' gegevens trefwoorden ernaast.
- Voeg ten slotte de “ vangst() ”-methode die eventuele fouten weergeeft tijdens de uitvoering van het programma.
Compileer nu de bovenstaande code in de Node.js-omgeving met behulp van de onderstaande opdracht op de terminal:
knooppunt < bestandsnaam >De weergegeven uitvoer laat zien dat de gevraagde gegevens als antwoord uit de opgegeven bron zijn opgehaald en via het consolevenster worden weergegeven:
Dat gaat allemaal over het doen van HTTP-verzoeken met de Node.js Request Module en een snel overzicht van de alternatieven.
Conclusie
Om een HTTP-verzoek te doen via de “ verzoek ”-module, de vereiste URL vanwaar het ophalen zal worden uitgevoerd. Vervolgens wordt de instantie van de “request”-module gemaakt en wordt de geselecteerde URL waarvoor het HTTP-verzoek moet worden geïmplementeerd, als eerste parameter doorgegeven. De vereiste callback-functie wordt ook gebruikt om te controleren op eventuele fouten en om de inhoud of het antwoord van het HTTP-verzoek op te halen. In deze handleiding wordt het proces uitgelegd van het maken van HTTP-verzoeken met behulp van de verzoekmodule.