Server perlu melakukan operasi yang berbeda sesuai dengan URL atau permintaan yang berbeda, dan kami dapat menerapkan langkah ini melalui perutean.
Pada langkah pertama, kita perlu menguraikan jalur URL permintaan terlebih dahulu, dan kami memperkenalkan modul URL.
Mari kita tambahkan beberapa logika ke fungsi OnRequest () untuk mengetahui jalur URL yang diminta oleh browser:
Salinan kode adalah sebagai berikut:
var http = membutuhkan ("http");
var url = membutuhkan ("url");
fungsi start () {
function onRequest (request, response) {
var pathname = url.parse (request.url) .pathname;
Console.log ("Permintaan" + Pathname + "Diterima.");
response.writeHead (200, {"tipe konten": "teks/polos"});
response.write ("halo dunia");
response.end ();
}
http.createServer (onRequest) .listen (8888);
Console.log ("Server telah dimulai.");
}
Exports.start = Mulai;
OK, Pathname adalah jalur permintaan, kami dapat menggunakannya untuk membedakan permintaan yang berbeda, sehingga kami dapat menggunakan kode yang berbeda untuk menangani permintaan dari /mulai dan /mengunggah.
Selanjutnya, kami akan menulis rute dan membuat file yang disebut router.js, kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
rute fungsi (pathname) {
console.log ("Akan merutekan permintaan untuk" + pathname);
}
Exports.Route = rute;
Kode ini tidak melakukan apa pun, pertama -tama kami mengintegrasikan rute dan server.
Kami kemudian memperpanjang fungsi start () server, menjalankan fungsi routing di start (), dan meneruskan pathname ke sana sebagai parameter.
Salinan kode adalah sebagai berikut:
var http = membutuhkan ("http");
var url = membutuhkan ("url");
fungsi start (rute) {
function onRequest (request, response) {
var pathname = url.parse (request.url) .pathname;
Console.log ("Permintaan" + Pathname + "Diterima.");
rute (pathname);
response.writeHead (200, {"tipe konten": "teks/polos"});
response.write ("halo dunia");
response.end ();
}
http.createServer (onRequest) .listen (8888);
Console.log ("Server telah dimulai.");
}
Exports.start = Mulai;
Pada saat yang sama, kami akan memperluas index.js sesuai sehingga fungsi routing dapat disuntikkan ke server:
Salinan kode adalah sebagai berikut:
var server = membutuhkan ("./ server");
var router = membutuhkan ("./ router");
server.start (router.Route);
Jalankan index.js dan akses jalur, seperti /unggah, Anda akan menemukan output konsol. Akan merutekan permintaan /mengunggah.
Ini berarti bahwa server HTTP kami dan modul routing meminta sudah dapat berkomunikasi satu sama lain.
Di bagian selanjutnya, kami akan menerapkan umpan balik yang berbeda untuk permintaan URL yang berbeda.