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 -v
Die 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.“ (gleiche Ebene) oder „node server debug
“ (Unterschicht), node server
“ angezeigt, was darauf hinweist, dass der Dienst erfolgreich gestartet wurde server running at http://www.php.cn/:8085/
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; 🎜>
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. ;
fs, stellt das Dateiressourcenobjekt dar, insbesondere können Sie auf die API der offiziellen Website von nodejs zugreifen
Pfad, stellt die Ressource dar; Pfadobjekt, insbesondere können Sie auf die API der offiziellen Website von nodejs zugreifen.
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.