สมมติว่าฉันต้องการมีจุดสิ้นสุด REST ซึ่งมีลักษณะประมาณนี้:
/user/
/user/user_id
/user/user_id/items/
/user/user_id/items/item_id
CRUD ในแต่ละกรณีหากสมเหตุสมผล ตัวอย่างเช่น / user POST สร้างผู้ใช้ใหม่ GET จะดึงข้อมูลผู้ใช้ทั้งหมด / user / user_id GET ดึงข้อมูลผู้ใช้เพียงคนเดียว
รายการเป็นสิ่งเฉพาะผู้ใช้ดังนั้นฉันจึงใส่ไว้ภายใต้user_idซึ่งเป็นผู้ใช้เฉพาะ
ตอนนี้เพื่อสร้างโมดูลาร์การกำหนดเส้นทางด่วนฉันสร้างอินสแตนซ์เราเตอร์สองสามตัว มีเราเตอร์สำหรับผู้ใช้และเราเตอร์สำหรับรายการ
var userRouter = require('express').Router();
userRouter.route('/')
.get(function() {})
.post(function() {})
userRouter.route('/:user_id')
.get(function() {})
var itemRouter = require('express').Router();
itemRouter.route('/')
.get(function() {})
.post(function() {})
itemRouter.route('/:item_id')
.get(function() {})
app.use('/users', userRouter);
// Now how to add the next router?
// app.use('/users/', itemRouter);
URL ที่item
จะสืบทอดมาจากลำดับชั้น URL ของไฟล์user
. ตอนนี้ฉันจะรับ URL ที่มี/users
อะไรก็ได้ให้กับ userRouter แต่เส้นทาง/user/*user_id*/items/
ไปยัง itemRouter ที่เฉพาะเจาะจงมากขึ้นได้อย่างไร และฉันต้องการให้ user_id สามารถเข้าถึง itemRouter ได้เช่นกันถ้าเป็นไปได้