يحتاج الخادم إلى إجراء عمليات مختلفة وفقًا لعناوين URL أو الطلبات المختلفة ، ويمكننا تنفيذ هذه الخطوة من خلال التوجيه.
في الخطوة الأولى ، نحتاج إلى تحليل مسار عنوان URL للطلب أولاً ، ونقدم وحدة URL.
دعنا نضيف بعض المنطق إلى وظيفة onrequest () لمعرفة مسار عنوان URL المطلوب من قبل المتصفح:
نسخة الكود كما يلي:
var http = require ("http") ؛
var url = require ("url") ؛
وظيفة start () {
وظيفة onrequest (طلب ، استجابة) {
var pathname = url.parse (request.url) .PathName ؛
console.log ("طلب" + pathname + "تم استلامه.") ؛
Response.writehead (200 ، {"content-type": "text/plain"}) ؛
الرد. write ("Hello World") ؛
استجابة.
}
http.createserver (onrequest) .Listen (8888) ؛
console.log ("بدأ الخادم.") ؛
}
orports.start = start ؛
حسنًا ، اسم المسار هو مسار الطلب ، يمكننا استخدامه لتمييز الطلبات المختلفة ، حتى نتمكن من استخدام رموز مختلفة لمعالجة الطلبات من /بدء و /تحميل.
بعد ذلك ، سنكتب المسار وننشئ ملفًا يسمى Router.js ، الرمز هو كما يلي:
نسخة الكود كما يلي:
طريق الوظيفة (اسم المسار) {
console.log ("على وشك توجيه طلب" + pathname) ؛
}
orports.route = الطريق ؛
هذا الرمز لا يفعل شيئًا ، ندمج أولاً الطريق والخادم.
ثم نقوم بتمديد وظيفة START () للخادم ، وتشغيل وظيفة التوجيه في Start () ، ونمر اسم المسار إليها كمعلمة.
نسخة الكود كما يلي:
var http = require ("http") ؛
var url = require ("url") ؛
وظيفة البدء (الطريق) {
وظيفة onrequest (طلب ، استجابة) {
var pathname = url.parse (request.url) .PathName ؛
console.log ("طلب" + pathname + "تم استلامه.") ؛
الطريق (اسم المسار) ؛
Response.writehead (200 ، {"content-type": "text/plain"}) ؛
الرد. write ("Hello World") ؛
استجابة.
}
http.createserver (onrequest) .Listen (8888) ؛
console.log ("بدأ الخادم.") ؛
}
orports.start = start ؛
في الوقت نفسه ، سنقوم بتمديد index.js وفقًا لذلك بحيث يمكن حقن وظيفة التوجيه في الخادم:
نسخة الكود كما يلي:
var server = required ("./ server") ؛
VAR ROUTER = require ("./ Router") ؛
server.start (Router.Route) ؛
تشغيل index.js والوصول إلى مسار ، مثل /التحميل ، ستجد إخراج وحدة التحكم. على وشك توجيه طلب /تحميل.
هذا يعني أن خادم HTTP وطلب التوجيه لدينا يمكن أن يتواصلوا بالفعل مع بعضهما البعض.
في القسم التالي ، سنقوم بتنفيذ ملاحظات مختلفة لطلبات URL المختلفة.