ฉันเจอคำถามนี้ในขณะที่กำลังมองหาฟังก์ชันการทำงานเดียวกัน
@ Jonathan Ong กล่าวไว้ในความคิดเห็นข้างต้นว่าการใช้อาร์เรย์สำหรับพา ธ นั้นเลิกใช้แล้ว แต่มีการอธิบายไว้อย่างชัดเจนใน Express 4 และทำงานใน Express 3.x นี่คือตัวอย่างของสิ่งที่ควรลอง:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
จากภายในrequest
วัตถุด้วยเส้นทาง/hooplul/poo?bandle=froo&bandle=pee&bof=blarg
:
"route": {
"keys": [
{
"optional": false,
"name": "farcus"
}
],
"callbacks": [
null
],
"params": [
null,
null,
"lul"
],
"regexp": {},
"path": [
"/test",
"/alternative",
"/barcus*",
"/farcus/:farcus/",
"/hoop(|la|lapoo|lul)/poo"
],
"method": "get"
},
สังเกตสิ่งที่เกิดขึ้นกับพารามิเตอร์: รับรู้ถึงกลุ่มการดักจับและพารามิเตอร์ในทุกเส้นทางที่เป็นไปได้ไม่ว่าจะถูกใช้ในคำขอปัจจุบันหรือไม่ก็ตาม
ดังนั้นการซ้อนเส้นทางหลายเส้นทางผ่านอาร์เรย์สามารถทำได้อย่างง่ายดาย แต่ผลข้างเคียงอาจไม่สามารถคาดเดาได้หากคุณหวังว่าจะได้รับสิ่งที่เป็นประโยชน์จากเส้นทางที่ใช้โดยใช้พารามิเตอร์หรือกลุ่มการจับภาพ อาจมีประโยชน์มากกว่าสำหรับการทำซ้ำซ้อน / นามแฝงซึ่งในกรณีนี้จะทำงานได้ดี
แก้ไข: โปรดดูคำตอบ @ c24w ของด้านล่าง
แก้ไข 2: นี่เป็นคำตอบที่ได้รับความนิยมพอสมควร โปรดทราบว่า ExpressJS เช่นเดียวกับไลบรารี Node.js ส่วนใหญ่เป็นงานเลี้ยงที่เคลื่อนย้ายได้ แม้ว่าการกำหนดเส้นทางข้างต้นจะยังคงใช้งานได้ (ฉันกำลังใช้งานอยู่ในขณะนี้ซึ่งเป็นคุณสมบัติที่มีประโยชน์มาก) ฉันไม่สามารถรับรองผลลัพธ์ของวัตถุคำขอได้ (ซึ่งแตกต่างจากที่ฉันอธิบายไว้อย่างแน่นอน) โปรดทดสอบอย่างรอบคอบเพื่อให้แน่ใจว่าคุณได้ผลลัพธ์ที่ต้องการ