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 reqArgument, 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:

http://localhost:8080/sommer

Wird dieses Ergebnis erzeugen:

/summer

http://localhost:8080/winter

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.