เซิร์ฟเวอร์จำเป็นต้องดำเนินการที่แตกต่างกันตาม URL หรือคำขอที่แตกต่างกันและเราสามารถใช้ขั้นตอนนี้ผ่านการกำหนดเส้นทาง
ในขั้นตอนแรกเราต้องแยกเส้นทางของ URL คำขอก่อนและเราแนะนำโมดูล URL
ลองเพิ่มตรรกะลงในฟังก์ชัน OnRequest () เพื่อค้นหาเส้นทาง URL ที่เบราว์เซอร์ร้องขอ:
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ("http");
var url = ต้องการ ("url");
ฟังก์ชั่นเริ่มต้น () {
ฟังก์ชั่น onRequest (คำขอการตอบกลับ) {
var pathName = url.parse (request.url) .pathName;
console.log ("ขอ" + pathname + "ได้รับ");
Response.writehead (200, {"เนื้อหาประเภท": "ข้อความ/ธรรมดา"});
Response.write ("Hello World");
Response.end ();
-
http.createserver (onrequest) .Listen (8888);
console.log ("เซิร์ฟเวอร์เริ่มต้นแล้ว");
-
ExportS.Start = Start;
ตกลงชื่อพา ธ เป็นเส้นทางของคำขอเราสามารถใช้เพื่อแยกความแตกต่างของคำขอที่แตกต่างกันเพื่อให้เราสามารถใช้รหัสที่แตกต่างกันเพื่อจัดการคำขอจาก /เริ่มและ /อัปโหลด
ต่อไปเราจะเขียนเส้นทางและสร้างไฟล์ที่เรียกว่า Router.js รหัสมีดังนี้:
การคัดลอกรหัสมีดังนี้:
เส้นทางฟังก์ชัน (ชื่อพา ธ ) {
console.log ("เกี่ยวกับการกำหนดเส้นทางสำหรับ" + ชื่อพา ธ );
-
exports.route = เส้นทาง;
รหัสนี้ไม่ได้ทำอะไรเลยเรารวมเส้นทางและเซิร์ฟเวอร์ก่อน
จากนั้นเราจะขยายฟังก์ชั่นการเริ่มต้น () ของเซิร์ฟเวอร์เรียกใช้ฟังก์ชั่นการกำหนดเส้นทางใน Start () และส่งผ่านชื่อพา ธ ไปเป็นพารามิเตอร์
การคัดลอกรหัสมีดังนี้:
var http = ต้องการ ("http");
var url = ต้องการ ("url");
ฟังก์ชั่นเริ่มต้น (เส้นทาง) {
ฟังก์ชั่น onRequest (คำขอการตอบกลับ) {
var pathName = url.parse (request.url) .pathName;
console.log ("ขอ" + pathname + "ได้รับ");
เส้นทาง (ชื่อพา ธ );
Response.writehead (200, {"เนื้อหาประเภท": "ข้อความ/ธรรมดา"});
Response.write ("Hello World");
Response.end ();
-
http.createserver (onrequest) .Listen (8888);
console.log ("เซิร์ฟเวอร์เริ่มต้นแล้ว");
-
ExportS.Start = Start;
ในเวลาเดียวกันเราจะขยาย index.js ตามเพื่อให้ฟังก์ชันการกำหนดเส้นทางสามารถฉีดลงในเซิร์ฟเวอร์:
การคัดลอกรหัสมีดังนี้:
var server = ต้องการ ("./ เซิร์ฟเวอร์");
var เราเตอร์ = ต้องการ ("./ เราเตอร์");
Server.Start (Router.Route);
เรียกใช้ index.js และเข้าถึงเส้นทางเช่น /อัปโหลดคุณจะพบเอาต์พุตคอนโซล กำลังจะกำหนดเส้นทางคำขอ /อัปโหลด
ซึ่งหมายความว่าเซิร์ฟเวอร์ HTTP ของเราและโมดูลการขอเส้นทางสามารถสื่อสารกันได้แล้ว
ในส่วนถัดไปเราจะใช้ข้อเสนอแนะที่แตกต่างกันสำหรับคำขอ URL ที่แตกต่างกัน