Node.js HTTP-module


De ingebouwde HTTP-module

Node.js heeft een ingebouwde module genaamd HTTP, waarmee Node.js gegevens kan overdragen via het Hyper Text Transfer Protocol (HTTP).

Gebruik de require()methode om de HTTP-module op te nemen:

var http = require('http');

Node.js als een webserver

De HTTP-module kan een HTTP-server maken die naar serverpoorten luistert en een reactie teruggeeft aan de client.

Gebruik de createServer()methode om een ​​HTTP-server te maken:

Voorbeeld

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

De functie die in de http.createServer() methode is doorgegeven, wordt uitgevoerd wanneer iemand toegang probeert te krijgen tot de computer op poort 8080.

Sla de bovenstaande code op in een bestand met de naam "demo_http.js", en start het bestand:

Start demo_http.js:

C:\Users\Your Name>node demo_http.js

Als u dezelfde stappen op uw computer hebt gevolgd, ziet u hetzelfde resultaat als in het voorbeeld: http://localhost:8080



Een HTTP-header toevoegen

Als het antwoord van de HTTP-server als HTML moet worden weergegeven, moet u een HTTP-header met het juiste inhoudstype opnemen:

Voorbeeld

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

Het eerste argument van de res.writeHead()methode is de statuscode, 200 betekent dat alles in orde is, het tweede argument is een object dat de antwoordheaders bevat.


Lees de queryreeks

De functie die wordt doorgegeven aan de http.createServer() heeft een reqargument dat het verzoek van de client vertegenwoordigt, als een object (http.IncomingMessage-object).

Dit object heeft een eigenschap genaamd "url" die het deel van de url bevat dat na de domeinnaam komt:

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

Sla de bovenstaande code op in een bestand met de naam "demo_http_url.js" en start het bestand:

Start demo_http_url.js:

C:\Users\Your Name>node demo_http_url.js

Als je dezelfde stappen op je computer hebt gevolgd, zou je twee verschillende resultaten moeten zien bij het openen van deze twee adressen:

http://localhost:8080/summer

Zal dit resultaat opleveren:

/summer

http://localhost:8080/winter

Zal dit resultaat opleveren:

/winter

De queryreeks splitsen

Er zijn ingebouwde modules om de querystring eenvoudig te splitsen in leesbare delen, zoals de URL-module.

Voorbeeld

Splits de queryreeks in leesbare delen:

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

Sla de bovenstaande code op in een bestand met de naam "demo_querystring.js" en start het bestand:

Start demo_querystring.js:

C:\Users\Your Name>node demo_querystring.js

Het adres:

Zal dit resultaat opleveren:

2017 July

Lees meer over de URL-module in het hoofdstuk Node.js URL-module .