Node.js URL-module
Die ingeboude URL-module
Die URL-module verdeel 'n webadres in leesbare dele.
Om die URL-module in te sluit, gebruik die require()
metode:
var url = require('url');
Ontleed 'n adres met die url.parse()
metode, en dit sal 'n URL-objek met elke deel van die adres as eienskappe terugstuur:
Voorbeeld
Verdeel 'n webadres in leesbare dele:
var url = require('url');
var adr = 'http://localhost:8080/default.htm?year=2017&month=february';
var q = url.parse(adr, true);
console.log(q.host); //returns 'localhost:8080'
console.log(q.pathname); //returns '/default.htm'
console.log(q.search); //returns '?year=2017&month=february'
var qdata = q.query; //returns an object: { year: 2017, month: 'february' }
console.log(qdata.month); //returns 'february'
Node.js-lêerbediener
Nou weet ons hoe om die navraagstring te ontleed, en in die vorige hoofstuk het ons geleer hoe om Node.js as 'n lêerbediener te laat optree. Kom ons kombineer die twee en bedien die lêer wat deur die kliënt aangevra is.
Skep twee html-lêers en stoor dit in dieselfde vouer as jou node.js-lêers.
somer.html
<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love
the sun!</p>
</body>
</html>
winter.html
<!DOCTYPE html>
<html>
<body>
<h1>Winter</h1>
<p>I love
the snow!</p>
</body>
</html>
Skep 'n Node.js-lêer wat die versoekte lêer oopmaak en die inhoud aan die kliënt terugstuur. As iets verkeerd loop, gooi 'n 404-fout:
demo_fileserver.js:
var http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function
(req, res) {
var q = url.parse(req.url, true);
var
filename = "." + q.pathname;
fs.readFile(filename,
function(err, data) {
if (err) {
res.writeHead(404, {'Content-Type': 'text/html'});
return res.end("404 Not Found");
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
return res.end();
});
}).listen(8080);
Onthou om die lêer te begin:
Inisieer demo_fileserver.js:
C:\Users\Your Name>node demo_fileserver.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/summer.html
Sal hierdie resultaat lewer:
Summer
I love the sun!
http://localhost:8080/winter.html
Sal hierdie resultaat lewer:
Winter
I love the snow!