Opret HTTP-webserver i Node.js: Tutorial med kodeeksempel
Node.js-rammeværket bruges mest til at skabe serverbaserede applikationer. Rammerne kan nemt bruges til at skabe webservere, som kan servere indhold til brugerne.
Der er en række moduler såsom "http" og "request" modulet, som hjælper med at behandle serverrelaterede anmodninger i webserverrummet. Vi vil se på, hvordan vi kan oprette en grundlæggende webserverapplikation ved hjælp af Knude js.
Node som en webserver ved hjælp af HTTP
Lad os se på et eksempel på, hvordan man opretter og kører vores første Node js-applikation.
Vores applikation vil skabe et simpelt servermodul, som vil lytte på port nr. 7000. Hvis en anmodning foretages gennem browseren på dette portnr., vil serverapplikationen sende et 'Hello World'-svar til klienten.
Kode Forklaring
- Den grundlæggende funktionalitet af require-funktionen er, at den læser en JavaScript fil, udfører filen og fortsætter derefter med at returnere eksportobjektet. Så i vores tilfælde, da vi ønsker at bruge funktionaliteten i http-modulet, bruger vi funktionen require til at hente de ønskede funktioner fra http-modulet, så det kan bruges i vores applikation.
- I denne kodelinje opretter vi en serverapplikation, som er baseret på en simpel funktion. Denne funktion kaldes hver gang der sendes en anmodning til vores serverapplikation.
- Når en anmodning modtages, siger vi, at du skal sende et svar med en overskriftstype på '200'. Dette nummer er det normale svar, som sendes i en http-header, når et vellykket svar sendes til klienten.
- I selve svaret sender vi strengen 'Hello World'.
- Vi bruger derefter server.listen-funktionen til at få vores serverapplikation til at lytte til klientforespørgsler på port nr. 7000. Du kan angive enhver tilgængelig port herovre.
Hvis kommandoen udføres med succes, vil følgende output blive vist, når du kører din kode i browseren.
Produktion
Fra udgangen,
- Du kan tydeligt se, at hvis vi browser til URL'en for localhost på port 7000, vil du se strengen 'Hello World' på siden.
- Fordi vi i vores kode har nævnt specifikt, at serveren skal lytte på port nr. 7000, er vi i stand til at se outputtet, når vi browser til denne url.
Her er koden til din reference
var http=require('http') var server=http.createServer((function(request,response) { response.writeHead(200, {"Content-Type" : "text/plain"}); response.end("Hello World\n"); })); server.listen(7000);
Håndtering af GET-anmodninger i Node.js
At lave en GET-anmodning for at få data fra et andet websted er relativt meget enkelt i Node.js. For at lave en Hent anmodning i noden, skal vi først have anmodningsmodulet installeret. Dette kan gøres ved at udføre følgende linje i kommandolinjen
npm installationsanmodning
Ovenstående kommando anmoder Node-pakkeadministratoren om at downloade de nødvendige anmodningsmoduler og installere dem i overensstemmelse hermed.
Når dit npm-modul er blevet installeret korrekt, vil kommandolinjen vise det installerede modulnavn og version: @ .
I ovenstående snapshot kan du se, at 'request'-modulet sammen med versionsnummeret 2.67.0 blev downloadet og installeret.
Lad os nu se koden, der kan gøre brug af denne 'request'-kommando.
Kode Forklaring
- Vi bruger "request"-modulet, som blev installeret i sidste trin. Dette modul har de nødvendige funktioner, som kan bruges til at lave GET-forespørgsler til websteder.
- Vi laver en GET-anmodning til www.google.com og kalder efterfølgende en funktion, når der modtages et svar. Når et svar modtages, vil parametrene (fejl, svar og brødtekst) have følgende værdier
- Fejl – I tilfælde af at der er modtaget en fejl ved brug af GET-anmodningen, vil den blive registreret her.
- Svar- Svaret vil have http-headerne, som sendes tilbage i svaret.
- Body- Brødteksten vil indeholde hele indholdet af svaret sendt af Google.
- I dette skriver vi blot indholdet modtaget i body-parameteren til filen console.log. Så dybest set, hvad end vi får ved at gå til www.google.com vil blive skrevet til console.log.
Her er koden til din reference
var request = require("request"); request("http://www.google.com",function(error,response,body) { console.log(body); });
Resumé
- Node.js-rammeværket kan bruges til at udvikle webservere ved hjælp af 'http'-modulet. Applikationen kan fås til at lytte på en bestemt port og sende et svar til klienten, når der fremsættes en anmodning til applikationen.
- 'Request'-modulet kan bruges til at få information fra websteder. Oplysningerne vil indeholde hele indholdet af den webside, der anmodes om fra det relevante websted.