Rumah >hujung hadapan web >tutorial js >Cipta pelayan nodejs dengan mudah (4): Penghalaan
Pelayan perlu melakukan operasi yang berbeza berdasarkan URL atau permintaan yang berbeza Kami boleh melaksanakan langkah ini melalui penghalaan.
Dalam langkah pertama, kami perlu menghuraikan laluan URL permintaan dan kami memperkenalkan modul url.
Mari tambahkan beberapa logik pada fungsi onRequest() untuk mengetahui laluan URL yang diminta oleh penyemak imbas:
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的请求使用不同的代码来处理。
Kemudian mari tulis laluan dan buat penghala yang dipanggil fail js , kodnya adalah seperti berikut:
function route(pathname) { console.log("About to route a request for " + pathname); } exports.route = route;
Kod ini tidak melakukan apa-apa. Mari kita integrasikan penghalaan dan pelayan dahulu.
Kami kemudian melanjutkan fungsi start() pelayan, menjalankan fungsi penghalaan dalam start(), dan menghantar nama laluan kepadanya sebagai 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;
Pada masa yang sama, kami akan memanjangkan index.js dengan sewajarnya supaya fungsi penghalaan boleh disuntik ke dalam pelayan:
var server = require("./server"); var router = require("./router"); server.start(router.route);
Jalankan index.js dan akses mana-mana laluan , seperti / muat naik, anda akan menemui output konsol, Mengenai untuk mengarahkan permintaan untuk /muat naik.
Ini bermakna pelayan HTTP kami dan modul penghalaan permintaan sudah boleh berkomunikasi antara satu sama lain.
Di atas adalah keseluruhan kandungan bab ini Untuk lebih banyak tutorial berkaitan, sila lawati Tutorial Video Node.js!