โดยทั่วไปแล้วเซิร์ฟเวอร์ควรมีคำตอบที่แตกต่างกันสำหรับคำขอ URL ที่แตกต่างกัน เราจำเป็นต้องจัดเตรียม URL ที่ร้องขอและพารามิเตอร์การรับและโพสต์อื่น ๆ ที่จำเป็นสำหรับเส้นทางจากนั้นเส้นทางจะต้องดำเนินการรหัสที่เกี่ยวข้องตามข้อมูลนี้ ข้อมูลทั้งหมดที่เราต้องการรวมอยู่ในวัตถุคำขอซึ่งผ่านเป็นพารามิเตอร์แรกของฟังก์ชันการโทรกลับ onrequest () ในการแยกวิเคราะห์ข้อมูลนี้จำเป็นต้องมีการเรียกโมดูลเพิ่มเติมคือ URL และโมดูล QueryString
URL: นี่
โมดูลมียูทิลิตี้สำหรับการแก้ปัญหา URL และการแยกวิเคราะห์ การโทรต้องการ ('url') ถึง
ใช้มัน
วัตถุ URL ที่แยกวิเคราะห์มีฟิลด์บางส่วนหรือทั้งหมดต่อไปนี้ขึ้นอยู่กับว่ามีอยู่ในสตริง URL หรือไม่ ชิ้นส่วนใด ๆ ที่ไม่ได้อยู่ในสตริง URL จะไม่อยู่ในวัตถุที่แยกวิเคราะห์ ตัวอย่างจะแสดงสำหรับ URL
'http: // ผู้ใช้: [email protected]: 8080/p/a/t/h? query = string#hash'
HREF: URL เต็มรูปแบบที่ถูกแยกวิเคราะห์ ทั้งโปรโตคอลและโฮสต์นั้นลดลง
ตัวอย่าง: 'http: // ผู้ใช้: [email protected]: 8080/p/a/t/h? query = string#hash'
โปรโตคอล: โปรโตคอลคำขอลดลง
ตัวอย่าง: 'http:'
โฮสต์: ส่วนโฮสต์ที่ลดลงเต็มรูปแบบของ URL รวมถึงข้อมูลพอร์ต
ตัวอย่าง: 'host.com:8080'
Auth: ส่วนข้อมูลการตรวจสอบสิทธิ์ของ URL
ตัวอย่าง: 'ผู้ใช้: ผ่าน'
ชื่อโฮสต์: เพียงส่วนที่เป็นชื่อโฮสต์ที่ลดลงของโฮสต์
ตัวอย่าง: 'host.com'
พอร์ต: ส่วนหมายเลขพอร์ตของโฮสต์
ตัวอย่าง: '8080'
ชื่อพา ธ : ส่วนเส้นทางของ URL ที่เกิดขึ้นหลังจากโฮสต์และก่อนการสืบค้นรวมถึงสแลชเริ่มต้นหากมีอยู่
ตัวอย่าง: '/p/a/t/h'
ค้นหา: ส่วน 'string string' ของ URL รวมถึงเครื่องหมายคำถามชั้นนำ
ตัวอย่าง: '? query = String'
เส้นทาง: การต่อเนื่องของชื่อพา ธ และการค้นหา
ตัวอย่าง: '/p/a/t/h? query = string'
แบบสอบถาม: ส่วน 'params' ของสตริงการสืบค้นหรือวัตถุแบบสอบถามที่มีการสืบค้น
ตัวอย่าง: 'query = string' หรือ {'Query': 'String'}
แฮช: ส่วน 'ชิ้นส่วน' ของ URL รวมถึงปอนด์เซ็นต์
ตัวอย่าง: '#hash'
เราจะใช้การฉีดพึ่งพาเพื่อเพิ่มโมดูลการกำหนดเส้นทางมากขึ้นอย่างหลวม ฟังก์ชั่นที่เป็นเป้าหมายการกำหนดเส้นทางเรียกว่าตัวจัดการคำขอ การใช้งานตัวจัดการคำขอต้องมีการสร้างโมดูลที่เรียกว่า requesthandlers ซึ่งแน่นอนว่าสามารถตั้งชื่อได้อื่น ๆ และสำหรับตัวจัดการคำขอแต่ละตัวเพิ่มฟังก์ชั่นตัวยึดตำแหน่งจากนั้นส่งออกฟังก์ชั่นเหล่านี้เป็นวิธีโมดูลเพื่อให้ตัวจัดการคำขอและโมดูลการกำหนดเส้นทางสามารถเชื่อมต่อกับเส้นทางเพื่อให้สามารถติดตามเส้นทางได้
เป็นที่สังเกตโดยเฉพาะอย่างยิ่งว่าชุดของตัวจัดการคำขอจะต้องส่งผ่านวัตถุที่นี่และวัตถุจะต้องถูกฉีดเข้าไปในฟังก์ชันเส้นทาง () โดยใช้วิธีการคู่กันอย่างหลวม
เราสามารถรับฟังก์ชั่นการจัดการคำขอจากวัตถุที่ผ่านในลักษณะเดียวกับการรับองค์ประกอบจากอาร์เรย์เชื่อมโยงดังนั้นเราจึงมีการแสดงออกที่กระชับและราบรื่นเช่นด้ามจับ [ชื่อพา ธ ] (); รหัสมีลักษณะเช่นนี้:
var handle = {} handle ["/"] = requesthandlers.start; handle ["/start"] = requesthandlers.start; จัดการ ["/อัปโหลด"] = requesthandlers.upload;