Node.js HTTP-module


Die ingeboude HTTP-module

Node.js het 'n ingeboude module genaamd HTTP, wat Node.js toelaat om data oor die Hyper Text Transfer Protocol (HTTP) oor te dra.

Om die HTTP-module in te sluit, gebruik die require()metode:

var http = require('http');

Node.js as 'n webbediener

Die HTTP-module kan 'n HTTP-bediener skep wat na bedienerpoorte luister en 'n reaksie aan die kliënt gee.

Gebruik die createServer()metode om 'n HTTP-bediener te skep:

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

Die funksie wat in die http.createServer() metode oorgedra is, sal uitgevoer word wanneer iemand probeer om toegang tot die rekenaar op poort 8080 te verkry.

Stoor die kode hierbo in 'n lêer genaamd "demo_http.js", en begin die lêer:

Begin demo_http.js:

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

As jy dieselfde stappe op jou rekenaar gevolg het, sal jy dieselfde resultaat sien as die voorbeeld: http://localhost:8080



Voeg 'n HTTP-kopskrif by

As die antwoord van die HTTP-bediener veronderstel is om as HTML vertoon te word, moet jy 'n HTTP-opskrif met die korrekte inhoudtipe insluit:

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);

Die eerste argument van die res.writeHead()metode is die statuskode, 200 beteken dat alles in orde is, die tweede argument is 'n objek wat die antwoordopskrifte bevat.


Lees die navraagstring

Die funksie wat in die oorgedra is, http.createServer() het 'n reqargument wat die versoek van die kliënt verteenwoordig, as 'n objek (http.IncomingMessage-objek).

Hierdie voorwerp het 'n eienskap genaamd "url" wat die deel van die url bevat wat na die domeinnaam kom:

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);

Stoor die kode hierbo in 'n lêer genaamd "demo_http_url.js" en begin die lêer:

Begin demo_http_url.js:

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

As jy dieselfde stappe op jou rekenaar gevolg het, behoort jy twee verskillende resultate te sien wanneer jy hierdie twee adresse oopmaak:

http://localhost:8080/somer

Sal hierdie resultaat lewer:

/summer

http://localhost:8080/winter

Sal hierdie resultaat lewer:

/winter

Verdeel die navraagstring

Daar is ingeboude modules om die navraagstring maklik in leesbare dele te verdeel, soos die URL-module.

Voorbeeld

Verdeel die navraagstring in leesbare dele:

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);

Stoor die kode hierbo in 'n lêer genaamd "demo_querystring.js" en begin die lêer:

Inisieer demo_querystring.js:

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

Die adres:

Sal hierdie resultaat lewer:

2017 July

Lees meer oor die URL-module in die Node.js URL-module hoofstuk.