Luo HTTP-verkkopalvelin Node.js:ssä: opetusohjelma koodiesimerkillä
Node.js-kehystä käytetään enimmäkseen palvelinpohjaisten sovellusten luomiseen. Kehyksen avulla voidaan helposti luoda web-palvelimia, jotka voivat palvella sisältöä käyttäjille.
On olemassa useita moduuleja, kuten "http" ja "pyyntö"-moduuli, joka auttaa käsittelemään palvelimeen liittyviä pyyntöjä verkkopalvelintilassa. Katsotaan kuinka voimme luoda perusverkkopalvelinsovelluksen käyttämällä Node js.
Solmu web-palvelimena HTTP:n avulla
Katsotaanpa esimerkkiä ensimmäisen Node js -sovelluksen luomisesta ja suorittamisesta.
Sovelluksemme aikoo luoda yksinkertaisen palvelinmoduulin, joka kuuntelee porttia nro 7000. Jos pyyntö tehdään selaimen kautta tähän porttiin nro, palvelinsovellus lähettää asiakkaalle Hello World -vastauksen.
Koodin selitys
- Vaatimuksen funktion perustoiminto on, että se lukee a JavaKäsikirjoitus tiedosto, suorittaa tiedoston ja jatkaa sitten vientiobjektin palauttamista. Joten meidän tapauksessamme, koska haluamme käyttää http-moduulin toimintoja, käytämme vaadi-funktiota saadaksemme halutut funktiot http-moduulista, jotta sitä voidaan käyttää sovelluksessamme.
- Tällä koodirivillä luomme palvelinsovellusta, joka perustuu yksinkertaiseen toimintoon. Tätä toimintoa kutsutaan aina, kun palvelinsovelluksellemme tehdään pyyntö.
- Kun pyyntö vastaanotetaan, pyydämme lähettämään vastauksen, jonka otsikkotyyppi on "200". Tämä numero on normaali vastaus, joka lähetetään http-otsikossa, kun asiakkaalle lähetetään onnistunut vastaus.
- Itse vastauksessa lähetämme merkkijonon "Hei maailma".
- Käytämme sitten server.listen-toimintoa saadaksemme palvelinsovelluksemme kuuntelemaan asiakkaan pyyntöjä portista 7000. Voit määrittää minkä tahansa käytettävissä olevan portin täällä.
Jos komento suoritetaan onnistuneesti, seuraava tulos näytetään, kun suoritat koodin selaimessa.
ulostulo
Ulostulosta,
- Näet selvästi, että jos selaamme portin 7000 localhostin URL-osoitteeseen, näet sivulla merkkijonon "Hello World".
- Koska koodissamme olemme maininneet nimenomaan palvelimen kuuntelevan porttia nro 7000, voimme tarkastella tulostetta, kun selaat tätä URL-osoitetta.
Tässä on koodi viitteellesi
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);
GET-pyyntöjen käsittely Node.js:ssä
GET-pyynnön tekeminen tietojen saamiseksi toiselta sivustolta on suhteellisen helppoa Node.js:ssä. Jotta voimme tehdä Get-pyynnön solmussa, meidän on ensin oltava asennettuna pyyntömoduuli. Tämä voidaan tehdä suorittamalla seuraava rivi komentorivillä
npm-asennuspyyntö
Yllä oleva komento pyytää Node-pakettien hallintaa lataamaan vaaditut pyyntömoduulit ja asentamaan ne vastaavasti.
Kun npm-moduuli on asennettu onnistuneesti, komentorivillä näkyy asennetun moduulin nimi ja versio: @ .
Yllä olevasta tilannekuvasta näet, että 'pyyntö'-moduuli sekä versionumero 2.67.0 on ladattu ja asennettu.
Katsotaanpa nyt koodia, joka voi käyttää tätä 'request'-komentoa.
Koodin selitys
- Käytämme 'request'-moduulia, joka asennettiin viimeisessä vaiheessa. Tässä moduulissa on tarvittavat toiminnot, joita voidaan käyttää GET-pyyntöjen tekemiseen verkkosivustoille.
- Teemme GET-pyynnön osoitteeseen www.google.com ja kutsumme sen jälkeen toimintoa, kun saamme vastauksen. Kun vastaus vastaanotetaan, parametreilla (error, response ja body) on seuraavat arvot
- Virhe – Jos GET-pyyntöä käytettäessä tapahtuu virhe, se tallennetaan tähän.
- Vastaus – vastauksessa on http-otsikot, jotka lähetetään takaisin vastauksessa.
- Teksti - Teksti sisältää Googlen lähettämän vastauksen koko sisällön.
- Tässä kirjoitamme vain body-parametrissa vastaanotetun sisällön console.log-tiedostoon. Eli periaatteessa mitä tahansa saamme menemällä www.google.com kirjoitetaan konsoli.logiin.
Tässä on koodi viitteellesi
var request = require("request"); request("http://www.google.com",function(error,response,body) { console.log(body); });
Yhteenveto
- Node.js-kehystä voidaan käyttää web-palvelimien kehittämiseen käyttämällä http-moduulia. Sovellus voidaan asettaa kuuntelemaan tiettyä porttia ja lähettämään vastaus asiakkaalle aina, kun sovellukselle tehdään pyyntö.
- "Request"-moduulia voidaan käyttää tietojen hakemiseen web-sivustoilta. Tiedot sisältäisivät kyseiseltä verkkosivustolta pyydetyn verkkosivun koko sisällön.