Node.js http-Server
Node.js ermöglicht uns die Erstellung von Servern und Clients mithilfe der Low-Level-API des HTTP-Moduls. Als wir zum ersten Mal mit dem Erlernen von Node begannen, stießen wir alle auf den folgenden Code:
Dieser Code enthält Informationen zum http-Modul, was bedeutet:
1. Fordern Sie das HTTP-Modul vom Kern von „Node.js“ an und weisen Sie es einer Variablen zur Verwendung in zukünftigen Skripten zu.
Das Skript hat dann über „Node.js“ Zugriff auf Methoden zur Verwendung von „HTTP“.
2. Verwenden Sie „createServer“, um ein neues Webserverobjekt zu erstellen
3. Das Skript übergibt eine anonyme Funktion an den Server, die dem Webserver-Objekt mitteilt, was passieren soll, wenn es eine Anfrage erhält
4. Zeile 4 des Skripts definiert den Port und Host des Webservers, was bedeutet, dass Sie „http://127.0.0.1:3000“ verwenden können
um auf den Server zuzugreifen
Http-Header
Für jede HTTP-Anfrage und -Antwort wird ein HTTP-Header gesendet. Der HTTP-Header sendet zusätzliche Informationen, einschließlich des Inhaltstyps, des Datums, an dem der Server die Antwort gesendet hat, und des HTTP-Statuscodes
Der http-Header enthält viele Informationen. Das Folgende sind die http-Header-Informationen, die auf meiner Baidu-Homepage enthalten sind:
Da ich meiner Baidu-Homepage weitere Websites hinzugefügt habe, können die Daten hier von denen der Leser abweichen. Daraus können wir ersehen, dass der Webserver von Baidu BWS/1.1 ist
Das Folgende sind die http-Header-Informationen des obigen Codes:
Weiterleitungen in Node.js
In Node können wir ganz einfach einen einfachen Server erstellen, um Besucher auf eine andere Webseite umzuleiten. Die Richtlinien lauten wie folgt:
1. Senden Sie einen 301-Antwortcode an den Kunden, um ihm mitzuteilen, dass die Ressource an einen anderen Standort verschoben wurde
2. Senden Sie einen Standortheader, um dem Client mitzuteilen, wohin er umgeleitet werden soll.
http://127.0.0.1:3000Die Seite wird umgeleitet.
Reagieren Sie auf verschiedene Anfragen
Node.js kann nicht nur eine einzelne Antwort erstellen, sondern für mehrere Arten von Anforderungen müssen wir der Anwendung einige Routen hinzufügen. Node vereinfacht dies mithilfe des URL-Moduls. Das URL-Modul ermöglicht es uns, eine URL zu lesen, sie zu analysieren und dann etwas mit der Ausgabe zu tun.
Um die Portnummer zu erhalten, können Sie Folgendes eingeben:
Event-Modul
Node.js gilt als der beste Weg, um Parallelität zu erreichen. Das Events-Modul ist der Kern von Node.js und wird von vielen anderen Modulen verwendet, um Funktionen rund um Events zu entwickeln. Da Node.js in einem einzelnen Thread ausgeführt wird, blockiert jeglicher Synchronisierungscode. Daher müssen wir beim Schreiben von Node.js-Code einige einfache Regeln berücksichtigen:
1. Nicht blockieren – „Node.js“ ist Single-Threaded, wenn der Code alles andere blockiert, stoppt
2. Schnelle Rückkehr – Der Betrieb sollte schnell zurückkehren. Wenn es nicht schnell zurückkehren kann, sollte es in einen anderen Prozess verschoben werden
Mit dem Modul „Events“ können Entwickler Listener und Handler für Ereignisse einrichten. In Client-JS können wir einen Listener für das Klickereignis festlegen und dann etwas tun, wenn das Ereignis auftritt:
1. Antwort vom Webserver
2. Daten aus der Datei lesen
3. Daten aus der Datenbank zurückgeben
Um das Events-Modul verwenden zu können, müssen wir zunächst eine neue EventEmitter-Instanz erstellen:
Um Nachrichten zu empfangen, müssen Sie einen Listener hinzufügen, der das Ereignis verarbeitet, wenn es ausgelöst wird, zum Beispiel:
1. Klasse: events.EventEmitter: Erhalten Sie die EventEmitter-Klasse über require('events').EventEmitter.
2.emitter.on(event, listener): Fügen Sie am Ende des Listener-Arrays einen Listener für ein bestimmtes Ereignis hinzu. Geben Sie den Emitter zurück, um Kettenaufrufe zu erleichtern, siehe unten.
4.emitter.listeners(event) gibt das Listener-Array des angegebenen Ereignisses zurück
Weitere Einzelheiten finden Sie in der Node.js-API-Dokumentation
console.log(data);
});
console.log('die Nachricht ist zerstört!');
});
setTimeout(function () {
SecretMessage.emit('self destruct');
},5000);
In diesem Skript werden zwei Ereignisse gesendet und es gibt zwei Listener. Wenn das Skript ausgeführt wird, treten Nachrichtenereignisse auf und werden vom „message“-Handler
verarbeitetEventEmitter wird überall in Node.js verwendet, daher ist es wichtig, es zu beherrschen. Node.js ruft Daten durch E/A-Vorgänge ab und nutzt in großem Umfang das Ereignismodul, um die asynchrone Programmierung zu unterstützen
FAQ:
F: Gibt es eine Begrenzung für die maximale Anzahl von Zuhörern für eine Veranstaltung?
Antwort: Wenn ein Ereignis von 10 Listenern bearbeitet wird, wird standardmäßig eine Warnung ausgegeben. Diese Zahl kann jedoch mit emitter.setMaxListener(n)
F: Ist es möglich, alle gesendeten Ereignisse abzuhören?
Antwort: Nein. Wir müssen Zuhörer für jedes Ereignis erstellen, auf das wir reagieren möchten