Heim  >  Artikel  >  Web-Frontend  >  Tutorial zum Erstellen eines einfachen Webservers mit node.js

Tutorial zum Erstellen eines einfachen Webservers mit node.js

高洛峰
高洛峰Original
2017-02-21 14:39:231464Durchsuche

Das Thema dieses Artikels ist die Verwendung des Knotens zum Erstellen des einfachsten Webservers. Später können Sie je nach Bedarf mehr darüber erfahren. Derzeit können damit einfache Interaktionen mit dem Server während des Entwicklungsprozesses simuliert werden. wie die Rückgabe der Ressourcenkontrolle usw. Freunde, die es benötigen, können es als Referenz nutzen.

Vorwort

Die Verwendung von Nodejs zum Erstellen eines Webservers ist ein umfassendes Einführungstutorial zum Erlernen von Node.js, da Sie ein einfaches Tutorial absolvieren müssen Webserver. Sie müssen mehrere wichtige Module in Nodejs lernen, wie zum Beispiel: http-Protokollmodul, Dateisystem, URL-Parsing-Modul, Pfad-Parsing-Modul und 301-Umleitungsprobleme. Lassen Sie uns kurz darüber sprechen, wie man einen einfachen Webserver erstellt.

Wenn Sie früher browserseitig auf lokale Ressourcen zugreifen möchten, ohne einen Webserver zu verwenden, können Sie den Firefox-Browser verwenden, der selbst einen kleinen Webserver starten kann.
Damit Node-Neulinge es allgemein verstehen, werde ich versuchen, den Code in diesem Artikel so weit wie möglich zu vereinfachen.

Vorbereitung

Zuerst müssen Sie nodejs installieren. Dies kann von der offiziellen Website heruntergeladen werden Version lokal installiert.

Nachdem die Installation abgeschlossen ist, können Sie über die Befehlszeile testen, ob die Installation erfolgreich ist. Geben Sie Folgendes ein. Die aktuell installierte Knotenversionsnummer sollte angezeigt werden. node -vDie in diesem Artikel verwendeten Module sind alle NodeJS-Kernmodule und müssen nicht von außen heruntergeladen werden. Bei Bedarf können Sie den folgenden Befehl verwenden, um sie zu installieren:
. npm install xxx

Start

Erstellen Sie im nächsten Schritt eine neue js-Datei, die server.js heißen kann. Der Code lautet wie folgt:

var http = require('http');
 var url = require('url');
 var path = require('path');
 var fs = require('fs');

 var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
 // 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
 // 且你想以debug文件夹启动web服务

 http.createServer(function (req, res) {
 var pathname = __dirname + url.parse(req.url).pathname;
 dir = dir ? dir : pathname; // 记住dir(目录)
 pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替换文件静态路径
 if (path.extname(pathname) == "") {
 pathname += "/";
 }
 if (pathname.charAt(pathname.length - 1) == "/") {
 pathname += "index.html"; // 入口文件,此处默认index.html
 }

 fs.exists(pathname, function (exists) {
 if (exists) {
 switch (path.extname(pathname)) {
 case ".html":
 res.writeHead(200, {"Content-Type": "text/html"});
 break;
 case ".js":
 res.writeHead(200, {"Content-Type": "text/javascript"});
 break;
 case ".css":
 res.writeHead(200, {"Content-Type": "text/css"});
 break;
 case ".gif":
 res.writeHead(200, {"Content-Type": "image/gif"});
 break;
 case ".jpg":
 res.writeHead(200, {"Content-Type": "image/jpeg"});
 break;
 case ".png":
 res.writeHead(200, {"Content-Type": "image/png"});
 break;
 default:
 res.writeHead(200, {"Content-Type": "application/octet-stream"});
 }

 // res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据
 fs.readFile(pathname, function (err, data) {
 res.end(data);
 });
 }
 else {
 res.writeHead(404, {"Content-Type": "text/html"});
 res.end("<h1>404 Not Found</h1>");
 }
 });
 }).listen(8085, "127.0.0.5"); // 服务器端口

 console.log("server running at http://www.php.cn/:8085/");

Starten

Nach Abschluss der Knoteninstallation und der oben genannten server.js Datei wird erstellt. Platzieren Sie es zusammen mit dem Ordner, auf den Sie zugreifen möchten, entweder auf derselben Ebene oder direkt darunter. Wenn Sie beispielsweise auf den Ordner d:testdebug zugreifen möchten.


Sie können zuerst die aktuelle Datei in die gleiche Ebene einfügen oder sie direkt herunterladen und dann den folgenden Befehl eingeben, um den Webdienst zu starten:

  1. Zuerst Öffnen Sie „cmd“ und geben Sie das Verzeichnis ein, in dem sich die Serverdatei befindet, z. B. das Verzeichnis „test“

  2. und geben Sie dann Folgendes ein: „

    “ (gleiche Ebene) oder „node server debug“ (Unterschicht), node server

  3. Zu diesem Zeitpunkt wird „

    “ angezeigt, was darauf hinweist, dass der Dienst erfolgreich gestartet wurde server running at http://www.php.cn/:8085/

    Öffnen Sie abschließend den Browser und geben Sie „127.0.0.5:8085“ ein, um auf diese Ressource zuzugreifen.

Zum Schluss

Eine kurze Erklärung des obigen Codes.

Zunächst gibt die Anforderung oben an, welche Module verwendet werden müssen. Bitte zitieren Sie sie zuerst.

arg gibt den dritten Parameter der Eingabebefehlszeile an, den oben genannten erfolgt manuell Abfangen;

createServer-Methode bedeutet, einen HTTP-Dienst zu erstellen, eine Funktion als Parameter zu verwenden und eine anonyme Funktion im Code dieses Artikels zu übergeben; 🎜>

req stellt das HTTP-Anforderungsobjekt (Anfrageobjekt) dar, das relevante Informationen aus der HTTP-Anfrage des Clients enthält, z. B. Anforderungsmethode, Anforderungsabfrageparameter, Anforderungsheaderinformationen usw.; >


res stellt das http-Antwortobjekt (Rückgabeobjekt) dar, das zum Zurückgeben angeforderter Ressourcen an den Client verwendet wird. Informationen können manuell hinzugefügt werden, z. B. zurückgegebene Daten, zurückgegebene Header-Informationen usw., zurückgegebener Code usw. ;

  1. fs, stellt das Dateiressourcenobjekt dar, insbesondere können Sie auf die API der offiziellen Website von nodejs zugreifen

  2. Pfad, stellt die Ressource dar; Pfadobjekt, insbesondere können Sie auf die API der offiziellen Website von nodejs zugreifen.

  3. listen stellt den erstellten Dienst dar, der abhört. Sobald auf diesen Port zugegriffen wird, wird der vorherige anonyme Funktionsrückruf eingegeben und die Ressource an den Client zurückgegeben.

  4. Weitere Tutorials zum Erstellen eines einfachen Webservers mit node.js finden Sie auf der chinesischen PHP-Website!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn