Heim >Web-Frontend >js-Tutorial >Erstellen eines HTTP -Servers in node.js
Erstellen Sie einen node.js http Server
Der vorherige Artikel führte das grundlegendste Node.js -Programm ein. Während das Programm "Hello World" gut ist, wird Node.js häufiger verwendet, um hochskalierbare Serveranwendungen zu erstellen. In diesem Artikel wird ein einfacher HTTP -Server vorgestellt, der auf node.js.
Schlüsselpunkte
require()
Servers ist in der Methode http
(Laden des Moduls) und der createServer()
-Methode des response.writeHead()
Der Server verwendet die response.write()
-Methode, um den HTTP -Statuscode und den Antwortheader an den Client zurück zu senden, schreibt ihn mit response.end()
an die HTML -Seite und beendet die Antwort mit listen()
. Der Server verwendet die Ausführen des Servers
Erstellen Sie zunächst eine neue Datei mit dem Namen "web_server.js". Fügen Sie den folgenden Code in die Datei ein und speichern Sie:
<code class="language-javascript">var http = require("http"); var server = http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/html"}); response.write("<!DOCTYPE html>"); response.write(""); response.write(""); response.write("<title>Hello World Page</title>"); response.write(""); response.write(""); response.write("Hello World!"); response.write(""); response.write(""); response.end(); }); server.listen(80); console.log("Server is listening");</code>
Geben Sie den folgenden Befehl ein, um den Server zu starten. Wenn alles einwandfrei funktioniert, wird eine Nachricht angezeigt, die angibt, dass der Server zuhört. Beachten Sie, dass der Beispielserver versucht, an Port 80 (Standard -HTTP -Port) zu binden. Wenn dieser Port verwendet wurde oder auf Ihrem Computer eingeschränkt ist, werden Sie auf einen Fehler stoßen.
<code class="language-bash">node web_server.js</code>
Der nächste Schritt besteht darin, einen Webbrowser zu verwenden, um eine Verbindung zum Server herzustellen. Starten Sie den Browser Ihrer Wahl und leiten Sie ihn auf eine der folgenden Links. In Netzwerkbegriffen bezieht sich Localhost (und seine IP -Adresse 127.0.0.1) auf die Maschine, die Sie derzeit verwenden. Ihr Browser sollte "Hallo Welt!" Zeigen.
<code>http://localhost http://127.0.0.1</code>
Wie der Server
funktioniert Jetzt, da der Server in Betrieb ist, ist es Zeit, den Code zu analysieren. Das erste, was zu beachten ist, ist der require()
Anruf in Zeile 1. Node.js bietet ein einfaches Modulsystem mit einer riesigen Entwicklergemeinschaft. Das Programm node.js kann die require()
-Methode zum Laden eines einzelnen Moduls verwenden. Während viele Module heruntergeladen werden müssen, sind einige Module (z. B. http
) in der Installation von Node.js enthalten. Verwenden Sie in Zeile 2 die Methode http
des createServer()
-Moduls, um einen HTTP -Server zu erstellen. Wie die meisten Node.js -Funktionen nimmt createServer()
die Rückruffunktion als Argument. Diese Rückruffunktion wird jedes Mal ausgeführt, wenn der Server eine neue Anforderung empfängt. Die Rückruffunktion akzeptiert zwei Parameter: Anfrage und Antwort. Das Anforderungsobjekt enthält Informationen zu Client -Anfragen wie URLs, HTTP -Headern usw. In ähnlicher Weise wird das Antwortobjekt verwendet, um Daten an den Client zurückzugeben. Die Rückruffunktion ruft zuerst die response.writeHead()
-Methode auf. Diese Methode sendet den HTTP -Statuscode und eine Reihe von Antwortkopfzeilen zurück an den Client. Der Statuscode wird verwendet, um das Ergebnis der Anforderung anzugeben. Zum Beispiel hat jeder zuvor einen 404 -Fehler gestoßen, der angibt, dass die Seite nicht gefunden werden kann. Der Beispielserver gibt Code 200 zurück, wodurch der Erfolg angezeigt wird. Zusätzlich zum Statuscode gibt der Server viele HTTP -Header zurück, die die Parameter der Antwort definieren. Wenn Sie keine Header angeben, sendet Node.js sie implizit für Sie. Der Beispielserver gibt nur den Content-Type
-Header an. Dieser spezifische Header definiert den MIME -Typ der Antwort. Für HTML -Antworten lautet der MIME -Typ "Text/HTML". Als nächstes führt der Server mehrere Anrufe an response.write()
aus. Diese Anrufe werden verwendet, um auf HTML -Seiten zu schreiben. Standardmäßig wird eine UTF-8-Zeichenkodierung verwendet. Technisch gesehen können all diese Anrufe zu einem einzigen Aufruf zur Verbesserung der Leistungsverbesserung kombiniert werden. Für ein so einfaches Beispiel wird die Leistung jedoch für die Lesbarkeit des Code geopfert. Nach dem Schreiben auf die HTML -Seite wird die response.end()
-Methode aufgerufen. Indem wir diese Methode aufrufen, teilen wir dem Server mit, dass der Antwortheader und die Körperschaft gesendet wurden und dass die Anfrage abgeschlossen wurde. Der Beispielserver ruft ohne Parameter end()
auf. Wenn Sie jedoch nur einmal anrufen müssen, kann end()
auch wie write()
bezeichnet werden. Der listen()
-Aufruf in Zeile 15 bewirkt, dass der Server an den Port binden und auf eingehende Verbindungen anhört. Computer haben Tausende von Ports, die als Kommunikationsendpunkte fungieren. Um eine Verbindung zum Server herzustellen, muss der Client genau wissen, auf welchem Port der Server hört. Der Port wird von der Portnummer identifiziert, und der HTTP -Server hört normalerweise auf Port 80 an.
Schlussfolgerung
In diesem Artikel wird ein sehr grundlegender HTTP -Server eingeführt. In seinem aktuellen Zustand kann der Server nur eine einzige HTML -Seite zurückgeben. In den nächsten Wochen werden wir in die Welt von Node.js eintauchen und andere Funktionen wie das Lesen von Webseiten von Dateisystemen und die Integration der HTTP -Authentifizierung untersuchen.
FAQ zum Erstellen von HTTP -Servern (FAQ)
http.createServer()
-Methode ist eine integrierte Funktion in node.js, um eine neue Instanz des HTTP-Servers zu erstellen. Dieser Server hört auf eingehende Anfragen zu und sendet eine Antwort. Es dauert eine requestListener
-Funktion als Argument, das automatisch zum "Anfrage" -Erfonds hinzugefügt wird. Diese Funktion wird jedes Mal aufgerufen, wenn der Server eine Anforderung empfängt. Die Funktion requestListener
hat zwei Parameter: request
(eine Instanz von http.IncomingMessage
) und response
(eine Instanz von http.ServerResponse
).
response.writeHead()
-Methode ist eine Funktion in Node.js, die Antwortheader an Anforderungen sendet. Diese Methode akzeptiert zwei Parameter: den Statuscode und ein normales Objekt, das den Antwortkopf darstellt. Der Statuscode ist ein 3-Bit-HTTP-Statuscode, und der zweite Parameter ist ein Objekt, bei dem jedes Schlüsselwertpaar einen Headernamen und seinen Wert darstellt. Diese Methode muss vor response.end()
aufgerufen werden und kann nur einmal pro Antwort aufgerufen werden.
und write
in writeHead
node.js werden verwendet, um Serverantworten zu senden. Die writeHead
-Methode wird verwendet, um einen HTTP -Statuscode und eine Reihe von Antwortheadern zu senden, während die write
-Methode zum Senden eines Antwortgremiums an den Client verwendet wird. Die writeHead
-Methode sollte vor write
aufgerufen werden, beide sollten vor end
aufgerufen werden, und signalisiert den Server, dass alle Antwortheader und der Körper gesendet wurden. end
ist ein einfacher und einfach zu konfigurierter HTTP- oder HTTPS-Server für node.js. Um es zu verwenden, müssen Sie es zunächst mit NPM (Knotenpaketmanager) installieren, indem Sie node-http-server
ausgeführt werden. Nach der Installation können Sie es in die Datei node.js einführen und den Server mit seiner npm install node-http-server
-Methode starten. Die deploy
-Methode nimmt das Konfigurationsobjekt als Parameter ein, in dem Sie Serveroptionen wie Port, Root und ServerIndex angeben können. deploy
-Modul verwenden, um HTTP -Anforderungen und Antworten zu verarbeiten. Zunächst müssen Sie einen HTTP -Server mit der http
-Methode erstellen. Diese Methode nimmt die Rückruffunktion als Parameter an, der jedes Mal ausgeführt wird, wenn der Server eine Anforderung empfängt. Die Rückruffunktion hat zwei Parameter: http.createServer()
und request
. Mit dem Objekt response
kann es verwendet werden, um Informationen zu Client -Anfragen wie URLs, HTTP -Headern und Nutzlasten zu erhalten. Das request
-Objekt wird verwendet, um eine Antwort an den Client zu senden. Sie können den HTTP -Statuscode und den Header mit der response
-Methode festlegen, den Antwortkörper mit der response.writeHead()
-Methode schreiben und die Antwort mit der response.write()
-Methode beenden. response.end()
Das obige ist der detaillierte Inhalt vonErstellen eines HTTP -Servers in node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!