express / node.js – 如何将路由parameter passing给其他文件?

遇到了一个奇怪的错误,如果我在route / posts / index.js中定义了如此的路由:

router.use('/:id/edit', require('./edit')); 

在./edit里面,我有这样定义的端点:

 router.post('/', passport.authenticate('jwt', { session: false}), function(req, res){ 

如果我点击/ posts /:id / edit,我成功地在./edit中打了端点,但是const id = req.params.id; 将是未定义的。 但是,如果我直接在routes / posts / index.js中定义路由,则会定义req.params.id

让./edit中的path“识别”id参数的正确方法是什么?

您可以通过将{mergeParams: true}传递给express.Router()来合并父路由器参数。