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 req
argument 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:
Sal hierdie resultaat lewer:
/summer
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.