Ich musste kürzlich einen Kursentwurf fertigstellen und wurde vom Projektmanager (Teamleiter) damit beauftragt, Schnittstellenfunktionen zu schreiben. Der folgende Redakteur wird Ihnen in diesem Artikel zeigen, wie man mit Node einen kleinen Server erstellt kann darauf verweisen
Verwenden Sie den Knoten, um einen kleinen Server zu erstellen (eigentlich analysiert er die URL und gibt die Datei an den Client aus)
Ich musste kürzlich einen Kursentwurf fertigstellen und Ich wurde vom Projektmanager (Teamleiter) damit beauftragt, die Schnittstelle zu schreiben, aber ich hatte immer das Gefühl, dass ich nur das Frontend schreiben wollte. Da fehlt etwas, also möchte ich das Backend selbst schreiben und damit spielen.
Während dieser Zeit war ich etwas verwirrt darüber, welche Sprache ich ursprünglich verwenden sollte PHP, aber dann habe ich darüber nachgedacht, ob es nicht schön wäre, NodeJS zu verwenden „Es festigt das Fundament von js und schlägt zwei Fliegen mit einer Klappe, was großartig ist.“
Während des Lernprozesses von Node habe ich gelernt, wie man Node zum Implementieren eines Servers verwendet. Es fühlt sich wie eine gute Zusammenfassung der zuvor gelernten Module an. Vier Grundmodule fs stream http path
werden wie folgt verwendet: (Enthält gebrochene englische Kommentare bitte verzeihen Sie mir)
'use strict' var url = require('url'); var path = require('path'); var fs = require('fs'); var http = require('http'); //get the current path //var root = path.resolve('.');//以当前的目录为服务器的根目录 var root = path.resolve(process.argv[2] || '.');//以输入的参数作为服务器的根目录,如果没有输入参数就将当前目录作为服务器根目录 console.log('local root dir :' + root); //create server var server = http.createServer(function(request, response) { //get the path of URL var pathname = url.parse(request.url).pathname; //get the local path var filepath = path.join(root, pathname); //get the file stat and output the request file by callback function fs.stat(filepath, function(err, stat) { if(!err && stat.isFile()) { console.log('200' + request.url); response.writeHead(200); fs.createReadStream(filepath).pipe(response);//没有必要手动读取文件内容。由于response对象本身是一个Writable Stream,直接用pipe()方法就实现了自动读取文件内容并输出到HTTP响应。 } else { console.log('404' + request.url); response.writeHead(404); response.end('404 Not Found'); } }); }); server.listen(8080); console.log('Server is running at http://127.0.0.1:8080/');
Für einige davon Funktionserklärung :
path.resolve() 路径寻航(这名字不错) path.resolve([from…], to)
hat eine interessante Erklärung: Es entspricht dem ständigen Aufruf des CD-Befehls des Systems
z. B.:
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile') //相当于: cd foo/bar cd /tmp/file/ cd .. cd a/../subfile1 path.join([path1],path[2]...) 路径合并
um alle zu kopieren. Die Namen werden mit path.seq verkettet und dann mit normailze formatiert
z. B.:
path.join('///foo', 'bar', '//baz/asdf', 'quux', '..'); =>'/foo/bar/baz/asdf'
Da normalisieren
erwähnt wird, dann:
formatted Path path.normalize(p)
Formatiert Pfade, die nicht den Spezifikationen entsprechen, und vereinfacht so die Verarbeitung verschiedener komplexer Pfadurteile zwischen Entwicklern
z. B.:
path.normalize('/foo/bar//baz/asdf/quux/..'); => '/foo/bar/baz/asdf'
http.response .end() beendet die Antwort und teilt dem Client mit, dass alle Nachrichten gesendet wurden. Diese Funktion muss einmal aufgerufen werden, wenn alle zurückzugebenden Inhalte gesendet wurden. Wenn diese Funktion nicht aufgerufen wird, bleibt der Client für immer im Wartezustand .
Verwendung:
response.end([data], [encoding])
Die Zeichen, die nach der Ausführung von data end() ausgegeben werden sollen. Wenn der Wert von data angegeben wird, bedeutet dies, dass nach der Ausführung von Response.end() , führt dann eine Antwort aus.write(Daten, Kodierung);
Kodierung entsprechend der Zeichenkodierung von Daten
[Verwandte Empfehlungen]
2.Detailliertes Beispiel für die Verwendung von JavaScript zum Konvertieren chinesischer Schriftzeichen in Pinyin
3Teilen von 15 häufig verwendeten regulären js-Ausdrücken
4.Detailliertes Beispiel für die Implementierung der Suchsymbolleiste über Javascript
5.Detaillierte Einführung in die Verwendung von Async und Wait in Javascript
Das obige ist der detaillierte Inhalt vonVerwenden Sie node.js, um URL-Ausgabedateien für den Client zu analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!