Node.js- URL-Modul
Das integrierte URL-Modul
Das URL-Modul zerlegt eine Webadresse in lesbare Teile.
Um das URL-Modul einzubinden, verwenden Sie die require()
Methode:
var url = require('url');
Analysieren Sie eine Adresse mit der url.parse()
Methode, und sie gibt ein URL-Objekt mit jedem Teil der Adresse als Eigenschaften zurück:
Beispiel
Teilen Sie eine Webadresse in lesbare Teile auf:
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-Dateiserver
Jetzt wissen wir, wie man die Abfragezeichenfolge analysiert, und im vorherigen Kapitel haben wir gelernt, wie man Node.js dazu bringt, sich als Dateiserver zu verhalten. Lassen Sie uns die beiden kombinieren und die vom Client angeforderte Datei bereitstellen.
Erstellen Sie zwei HTML-Dateien und speichern Sie sie im selben Ordner wie Ihre node.js-Dateien.
sommer.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>
Erstellen Sie eine Node.js-Datei, die die angeforderte Datei öffnet und den Inhalt an den Client zurückgibt. Wenn etwas schief geht, werfen Sie einen 404-Fehler aus:
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);
Denken Sie daran, die Datei zu initialisieren:
Starten Sie demo_fileserver.js:
C:\Users\Your Name>node demo_fileserver.js
Wenn Sie die gleichen Schritte auf Ihrem Computer ausgeführt haben, sollten Sie beim Öffnen dieser beiden Adressen zwei unterschiedliche Ergebnisse sehen:
http://localhost:8080/sommer.html
Wird dieses Ergebnis erzeugen:
Summer
I love the sun!
http://localhost:8080/winter.html
Wird dieses Ergebnis erzeugen:
Winter
I love the snow!