Node.js- HTTP-Modul
Das eingebaute HTTP-Modul
Node.js verfügt über ein integriertes Modul namens HTTP, das es Node.js ermöglicht, Daten über das Hyper Text Transfer Protocol (HTTP) zu übertragen.
Um das HTTP-Modul einzubinden, verwenden Sie die
require()
Methode:
var http = require('http');
Node.js als Webserver
Das HTTP-Modul kann einen HTTP-Server erstellen, der Server-Ports abhört und eine Antwort an den Client zurückgibt.
Verwenden Sie die createServer()
Methode, um einen HTTP-Server zu erstellen:
Beispiel
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 an die http.createServer()
Methode übergebene Funktion wird ausgeführt, wenn jemand versucht, auf den Computer über Port 8080 zuzugreifen.
Speichern Sie den obigen Code in einer Datei namens "demo_http.js" und starten Sie die Datei:
Demo_http.js starten:
C:\Users\Your Name>node demo_http.js
Wenn Sie die gleichen Schritte auf Ihrem Computer ausgeführt haben, sehen Sie das gleiche Ergebnis wie im Beispiel: http://localhost:8080
Fügen Sie einen HTTP-Header hinzu
Wenn die Antwort des HTTP-Servers als HTML angezeigt werden soll, sollten Sie einen HTTP-Header mit dem richtigen Inhaltstyp einfügen:
Beispiel
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
res.write('Hello
World!');
res.end();
}).listen(8080);
Das erste Argument der res.writeHead()
Methode ist der Statuscode, 200 bedeutet, dass alles in Ordnung ist, das zweite Argument ist ein Objekt, das die Antwortheader enthält.
Lesen Sie die Abfragezeichenfolge
Die an übergebene Funktion http.createServer()
hat ein req
Argument, das die Anfrage vom Client als Objekt darstellt (http.IncomingMessage-Objekt).
Dieses Objekt hat eine Eigenschaft namens "url", die den Teil der URL enthält, der nach dem Domänennamen kommt:
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);
Speichern Sie den obigen Code in einer Datei namens "demo_http_url.js" und starten Sie die Datei:
Demo_http_url.js starten:
C:\Users\Your Name>node demo_http_url.js
Wenn Sie die gleichen Schritte auf Ihrem Computer ausgeführt haben, sollten Sie beim Öffnen dieser beiden Adressen zwei unterschiedliche Ergebnisse sehen:
Wird dieses Ergebnis erzeugen:
/summer
Wird dieses Ergebnis erzeugen:
/winter
Teilen Sie die Abfragezeichenfolge auf
Es gibt integrierte Module, um die Abfragezeichenfolge einfach in lesbare Teile aufzuteilen, z. B. das URL-Modul.
Beispiel
Teilen Sie die Abfragezeichenfolge in lesbare Teile auf:
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);
Speichern Sie den obigen Code in einer Datei namens "demo_querystring.js" und starten Sie die Datei:
Starten Sie demo_querystring.js:
C:\Users\Your Name>node demo_querystring.js
Die Adresse:
Wird dieses Ergebnis erzeugen:
2017 July
Lesen Sie mehr über das URL-Modul im Kapitel Node.js URL -Modul.