Node.js Web-Modul


Was ist ein Webserver?

Ein Webserver bezieht sich im Allgemeinen auf einen Website-Server, d. h. ein Programm, das auf einem bestimmten Computertyp im Internet läuft. Die grundlegende Funktion eines Webservers besteht darin, Dienste zum Durchsuchen von Webinformationen bereitzustellen. Er muss lediglich das HTTP-Protokoll, das HTML-Dokumentformat und URLs unterstützen und mit dem Webbrowser des Clients zusammenarbeiten.

Die meisten Webserver unterstützen serverseitige Skriptsprachen (PHP, Python, Ruby) usw. und verwenden Skriptsprachen, um Daten aus der Datenbank abzurufen und die Ergebnisse an den Client-Browser zurückzugeben.

Derzeit sind die drei gängigsten Webserver Apache, Nginx und IIS.


Webanwendungsarchitektur

  • Client- Client, bezieht sich im Allgemeinen auf den Browser. Der Browser kann Daten vom Server über das HTTP-Protokoll anfordern.

  • Server- Server, bezieht sich im Allgemeinen auf den Webserver. Er kann Client-Anfragen empfangen und Antwortdaten an den Client senden.

  • Business- Business-Schicht: verarbeitet Anwendungen über den Webserver, z. B. durch Interaktion mit der Datenbank, Ausführen logischer Operationen, Aufrufen externer Programme usw.

  • Daten- Datenschicht, besteht im Allgemeinen aus einer Datenbank.


Einen Webserver mit Node erstellen

Node.js stellt das http-Modul bereit. Das http-Modul wird hauptsächlich zum Erstellen von HTTP-Servern und -Clients verwendet. Um HTTP-Server- oder Client-Funktionen zu nutzen, müssen Sie das http-Modul aufrufen. Der Code lautet wie folgt:

var http = require('http');

Das Folgende demonstriert eine grundlegende HTTP-Server-Architektur (unter Verwendung von Port 8080). Erstellen Sie eine Datei server.js mit dem folgenden Code:

Beispiel

var http = require('http'); var fs = require('fs'); var url = require('url'); //Server erstellen http.createServer( Funktion (request, response) { //Request parsen, einschließlich Dateiname var pathname = url.parse(request.url).pathname; //Den angeforderten Dateinamen ausgeben console.log("Request for " + pathname + " received."); //Den angeforderten Dateiinhalt aus dem Dateisystem lesen fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); //HTTP-Statuscode: 404 : NOT FOUND // Content-Type: text/html response.writeHead(404, {'Content-Type': 'text/html'}); }else{ //HTTP-Statuscode: 200 : OK // Content-Type: text/html response.writeHead(200, {'Content-Type': 'text/html'}); //Dateiinhalt zurückgeben response.write(data.toString()); } //Antwortdaten senden response.end(); }); }).listen(8080); //Die Konsole gibt die folgende Information aus console.log('Server läuft unter http://127.0.0.1:8080/');

Als Nächstes erstellen wir eine index.html-Datei in diesem Verzeichnis. Der Code ist wie folgt:

index.html-Datei

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Beispiel (example.com)</title> </head> <body> <h1>Meine erste Überschrift</h1> <p>Mein erster Absatz.</p> </body> </html>

Führen Sie die Datei server.js aus:

$ node server.js
Server running at http://127.0.0.1:8080/

Dann öffnen wir die Adresse im Browser:http://127.0.0.1:8080/index.html, und sie wird wie in der folgenden Abbildung dargestellt angezeigt:

Die Konsolenausgabe nach Ausführung von server.js lautet wie folgt:

Server running at http://127.0.0.1:8080/
Request for /index.html received.     #  客户端请求信息

Webclient mit Node erstellen

Um einen Webclient mit Node zu erstellen, müssen Sie das http-Modul importieren. Erstellen Sie eine Datei client.js mit dem folgenden Code:

Beispiel

var http = require('http'); //Optionen für die Anfrage var options = { host: 'localhost', port: '8080', path: '/index.html' }; //Callback-Funktion zur Verarbeitung der Antwort var callback = function(response){ //Daten kontinuierlich aktualisieren var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { //Datenempfang abgeschlossen console.log(body); }); } //Eine Anfrage an den Server senden var req = http.request(options, callback); req.end();

Öffnen Sie ein neues Terminal, führen Sie die Datei client.js aus, und das Ausgabeergebnis lautet wie folgt:

$ node  client.js 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example(example.com)</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
</body>
</html>

Die Konsolenausgabe nach Ausführung von server.js lautet wie folgt:

Server running at http://127.0.0.1:8080/
Request for /index.html received.   # 客户端请求信息
Weitere Erweiterungen