Node.js ist eine JavaScript-Ausführungsumgebung, die auf der Chrome V8-Engine basiert und häufig in der Entwicklung von Webanwendungen verwendet wird. In Node.js können wir ganz einfach einen HTTP-Server erstellen und über den Browser auf die Webseiten auf dem Server zugreifen. In diesem Artikel wird erläutert, wie Sie mit Node.js einen HTTP-Server erstellen.
Zuerst müssen wir die Node.js-Umgebung lokal installieren. Sie können die offizielle Website von Node.js https://nodejs.org/ besuchen, um die neueste Version herunterzuladen und zu installieren. Nachdem die Installation abgeschlossen ist, können Sie in der Befehlszeile den folgenden Befehl eingeben, um zu überprüfen, ob die Installation erfolgreich war:
node -v
Wenn die Versionsnummer von Node.js korrekt angezeigt wird, ist die Installation erfolgreich.
Das Erstellen eines HTTP-Servers mit Node.js ist sehr einfach. Sie müssen lediglich das integrierte „http“-Modul von Node.js in eine JavaScript-Datei einführen, einen Server erstellen und den angegebenen Port abhören. Hier ist ein einfaches Beispiel:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Der obige Code erstellt einen HTTP-Server und lauscht auf Port 3000. Wenn ein Client auf den Server zugreift, gibt er die Zeichenfolge „Hello World!“ zurück.
Nachdem wir den HTTP-Server gestartet haben, können wir über den Browser auf den Server zugreifen. Geben Sie „http://localhost:3000“ in die Adressleiste des Browsers ein (wenn der Server nicht lokal läuft, ersetzen Sie „localhost“ durch die Server-IP-Adresse) und Sie werden sehen, dass der Browser die Zeichenfolge „Hello World!“ anzeigt.
Das obige Beispiel ist nur das einfachste Beispiel. Tatsächlich müssen wir bei der Verarbeitung von HTTP-Anfragen entsprechende Antworten basierend auf dem Inhalt des Anforderungsheaders und des Anforderungstexts generieren. Das http-Modul von Node.js stellt uns eine API speziell für die Bearbeitung von Anfragen zur Verfügung. Beispielsweise können wir die angeforderte URL-Adresse über req.url und die angeforderte Methode über req.method abrufen. Das Folgende ist ein Beispiel für die Rückgabe verschiedener Nachrichten entsprechend unterschiedlicher URL-Adressen:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); if (req.url === '/about') { res.end('This is about page'); } else if (req.url === '/contact') { res.end('This is contact page'); } else { res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Besuchen Sie „http://localhost:3000/about“. Der Browser zeigt die Zeichenfolge „Hier geht es um die Seite“ an „http://localhost:3000/contact“, Sie sehen die Zeichenfolge „Dies ist eine Kontaktseite“. Besuchen Sie „http://localhost:3000“, Sie sehen die Zeichenfolge „Hallo Welt!“.
Neben der Verarbeitung von GET-Anfragen können wir auch POST-Anfragen verarbeiten und die vom Client an den Server übergebenen Daten speichern. Das http-Modul von Node.js stellt uns außerdem eine API zur Verarbeitung von POST-Anfragen zur Verfügung. Das Folgende ist ein einfaches Beispiel für die Verarbeitung einer POST-Anfrage:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString(); }); req.on('end', () => { console.log(`Received data: ${body}`); res.end('Data received'); }); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Bei der Verarbeitung der HTTP-Anfrage ermittelt der obige Code zunächst, ob die Anforderungsmethode POST ist, überwacht das Datenübertragungsereignis und speichert die übertragenen Daten im Hauptteil Variable speichern und nach Abschluss der Datenübertragung ausdrucken. In der Client-HTML-Datei können Sie das Element