URL behandeln mit Node.js

Bei Node.js muss man die URLs seiner Website aktiv auswerten, um die Anrfragen eines Clients beantworten zu können. Wenn man im Vergleich zum Apache sieht, wo der Pfad unterhalb des htdocs-Verzeichnis dazu führt, dass man eine URL erhält, ist das bei Node.js eine ganz andere Welt.

Wenn ein Anwender eine GET-Anforderung auf die URL /test durchführt muss man das auf der Server Seite aktiv über das Request Objekt von Node.js ermitteln. Erst damit kann man überhaupt erkennen welche URL auf dem Node.js Server vom Client angefragt wurde.

Hierzu ein kleines Beispiel:

//includes
var http     = require('http');
 
//some 'global' vars
var port     = 8000;
 
var s =  http.createServer(function(req, res){
 
console.log(req.url);
 
    fs.readFile('test.html',function (err, data){
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write('Es wurde folgende URL angefordert' + req.url);
        res.end();
 
    });
})
 
s.listen(port);

In diesem Beispiel wird der Inhalt eine Datei test.html als Antwort auf jede angefragte URL an den Client zurückgeliefert. Als test.html kann man eigentlich jede beliebige Datei nutzen, in diesem Fall ist es lediglich ein Demoinhalt, damit was vom Server zurückgegeben wird.

Öffnet man nun einen Browser und fragt mal die URL http://localhost:8000/test oder http://localhost:8000/noch_ein_test erkannt man in der Konsolenausgabe welche URL gerade abgefragt wurde. Somit könnte man nun auf der Serverseite auf die verschiedenen URL reagieren und z.B. unterschiedliche Inhalte an den Client ausliefern.

Somit kann man erstmal grundsätzlich verstehen, wie man unteschiedliche Inhalte unter verschiedenen URLs ausliefern kann.

http://www.agile-coding.net/url_behandeln_mit_nodejs/