Der Server muss unterschiedliche Vorgänge basierend auf unterschiedlichen URLs oder Anforderungen ausführen. Wir können diesen Schritt durch Routing implementieren.
Im ersten Schritt müssen wir den Pfad der Anforderungs-URL analysieren und das URL-Modul einführen.
Fügen wir der Funktion onRequest() etwas Logik hinzu, um den vom Browser angeforderten URL-Pfad herauszufinden:
var http = require("http"); var url = require("url"); function start() { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。
Dann schreiben wir die Route und erstellen eine Router-JS-Datei , der Code lautet wie folgt:
function route(pathname) { console.log("About to route a request for " + pathname); } exports.route = route;
Dieser Code bewirkt zunächst nichts.
Wir erweitern dann die start()-Funktion des Servers, führen die Routing-Funktion in start() aus und übergeben ihr den Pfadnamen als Parameter.
var http = require("http"); var url = require("url"); function start(route) { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); route(pathname); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;
Gleichzeitig werden wir index.js entsprechend erweitern, damit die Routing-Funktion in den Server eingefügt werden kann:
var server = require("./server"); var router = require("./router"); server.start(router.route);
Führen Sie index.js aus und greifen Sie auf einen beliebigen Pfad zu B. /upload, finden Sie die Konsolenausgabe „Über die Weiterleitung einer Anfrage für /upload“.
Das bedeutet, dass unser HTTP-Server und das Anfrageroutingmodul bereits miteinander kommunizieren können.
Das Obige ist der gesamte Inhalt dieses Kapitels. Weitere verwandte Tutorials finden Sie unter Node.js Video-Tutorial!