In der vorherigen Vorlesung
haben wir über das Wesentliche der Vernetzung einschließlich Details des HTTP-Protokolls erfahren.
Jetzt werden wir uns ansehen, wie Node verwendet werden kann, um einen HTTP-Server zu konstruieren.
Hier kommt uns das Kern-HTTP-Modul, das in Node integriert ist, zu Hilfe.
Darüber hinaus werden wir uns ein paar andere Kernknoten Module ansehen, die nützlich sind, um
einen HTTP-Server aus der Verwendung von Node zu erstellen.
Also, wie nutzen wir das Node HTTP-Modul?
Wie bereits erwähnt, ist das HTTP-Modul eines der Kernmodule, die in den Knoten integriert sind.
Dies ist also ein Kernnetzwerkmodul, das
eine leistungsstarke Grundlage für HTTP-Stack unterstützt.
Die Verwendung des Moduls innerhalb unserer Node-Anwendung erfordert daher
, dass wir das Modul in unsere Anwendung importieren.
Das ist also, was wir tun, indem wir const HTTP = erfordern und
den Namen des Moduls HTTP dort.
Sobald das Modul importiert wurde,
unterstützt dieses HTTP-Modul eine CreateServer-Funktion, die
als Parameter eine Funktion übernimmt, die als
Callback-Funktion für das CreateServer-Modul fungiert und
diese Funktion hat zwei Parameter: request und response.
Die Anfrage ist die Anforderungsnachricht, die von
der Client-Seite kommt, und wir können die Anforderungsnachricht analysieren und dann
viele Informationen aus der Anforderungsnachricht extrahieren und sie verwenden, um
Entscheidungen darüber zu treffen, wie wir die Antwortnachricht entsprechend konstruieren.
Die Antwortnachricht wird mit dem zweiten Parameter hier aufgebaut, dem res,
auf dem wir die verschiedenen Header-Werte für
unsere HTTP-Antwortnachricht und auch den Körper der HTTP-Antwortnachricht konstruieren können.
Nun, um den Server zu starten,
sobald Sie den Server erstellen,
dann würden Sie sagen server.listen und dann geben Sie die Portnummer
und den Hostnamen für den Server, und das wird unseren Server starten.
Wir werden uns einige Details in der Beispielübung ansehen, die dieser Vorlesung folgt.
Wie bereits erwähnt, sind die Informationen der eingehenden Anforderungsnachricht
über den req-Parameter verfügbar, den die Funktion in der CreateServer-Methode annimmt.
Also, die req oder Anfrage,
wenn Sie es vollständigen Namen geben wollen,
können Sie es als eine Anfrage nennen, aber im Allgemeinen haben wir festgestellt, dass in
Beispielen wir req verwendet haben, um die Anfrage Nachricht darzustellen.
Es unterstützt die Javascript-Objekteigenschaften wie den Header,
den Körper und auch verschiedene Informationen, die extrahiert werden können,
die URL und die Methode, die von dieser Client-Site angefordert wurde.
Und als Antwort konstruieren Sie die Antwort mit dem
Antwort-Javascript-Objekt, das diese setHeader-Funktion unterstützt,
die StatusCode-Funktion, die auf den Statuscode der Antwortnachricht gesetzt werden kann.
Und dann würden Sie die Nachricht schreiben, die
res.write sagt, und Sie würden die Nachricht beenden, indem Sie
res.end sagen und das nimmt den letzten Teil des Körpers für die Nachricht.
Der Text kann entweder Standardtext oder HTML oder
andere Informationen sein, die Sie innerhalb des Textkörpers dieser Antwortnachricht einschließen möchten.
Aber sobald das res.end aufgerufen wird,
wird die Antwort vom HTTP-Server an den Client zurückgesendet.
Zwei weitere Kernmodule, die für uns nützlich sind,
wenn wir den Knoten HTTP-Server konstruieren, ist das Knotenpfadmodul.
Das Pfadmodul ermöglicht es uns, den Pfad zu einer Datei anzugeben und dann zu
prüfen, ob die Datei existiert oder weitere Details zu einer Datei zu untersuchen.
Zum Beispiel die Erweiterung der Datei,
Name und so weiter.
So kann das Pfadmodul innerhalb
unserer Anwendung verwendet werden, indem das Pfadmodul benötigt wird, wie hier gezeigt.
Und dann unterstützt dies Methoden,
wie zum Beispiel path.resolve,
die einen relativen Pfad in einen
absoluten Pfad umwandeln, der den gesamten Pfad zur Datei.
Sie können auch den Erweiterungsnamen für die Datei überprüfen, indem Sie die
Funktion path.extname aufrufen und den Dateipfad angeben,
der die Erweiterung des Dateinamens untersucht.
In ähnlicher Weise
ermöglicht das Dateisystemmodul, wieder ein Kernmodul in Node,
Dateien zu lesen und zu schreiben, die im lokalen Dateisystem auf dem Computer vorhanden sind.
So können die Dateisystemmodule innerhalb
unserer Node-Anwendung verwendet werden, indem sie es wie hier gezeigt erfordern.
Und dann unterstützen diese Dateisystemmodule viele Methoden,
einschließlich einer Methode, um zu überprüfen, ob die Datei im lokalen Dateisystem vorhanden ist oder nicht.
Das fs.exists wird also
den FilePath als ersten Parameter nehmen und der zweite Parameter ist
eine Callback-Funktion, die mit einem Parameter zurückkommt, den wir als existiert benennen können.
Dieser Parameter, existiert, ist true, wenn die Datei
existiert, und ist false, wenn die Datei nicht im lokalen Dateisystem vorhanden ist.
In ähnlicher Weise können Sie aus der Datei lesen, indem Sie einen Lesestrom mit dem Dateipfad erstellen.
Sie können also fs.createReadStream und
den FilePath sagen und dies kann an die Antwortnachricht weitergeleitet werden.
Die Datei wird also aus der Datei gelesen, die vom
FilePath angegeben wird, und dann wird der Inhalt in den
Körper der Antwortnachricht eingefügt, indem eine verkettete Funktion aufgerufen wird, wie hier gezeigt.
Dies sind also einige Beispiele für einige Kernknoten Module, die sehr
nützlich sein werden, wenn wir einen HTTP-Server mit Node konstruieren.
Nun, da wir einige Details über den HTTP-Server verstehen und wie er konstruiert werden kann,
gehen wir zu der Übung,
wo wir einen einfachen Knoten HTTP-Server konstruieren werden, der zuerst
einige grundlegende Informationen bereitstellt und danach werden wir Dateien bereitstellen
, die in einem öffentlichen Ordner in unser Projekt.