我们说我有以下路线:
// routes.js
import PhotoRoutes from './photoRoutes';
const UserBaseRoute = Router();
UserBaseRoute.use('/api/:userId', PhotoRoutes);
// photoRoutes.js
const PhotoRoute = Router();
PhotoRoute.get('/', (req, res) => {
console.log(req.params);
res.end();
});
export default PhotoRoute;
当我点击/api/123/
时,我希望使用{"userId: 123}'
但我不会。为什么baseRoute中定义的:userId
没有被传递?
答案 0 :(得分:0)
这是与嵌套路由器相关的问题。 您需要将子路由器的 mergeParams 设置为 true ,才能从父路由器访问参数。
请尝试以下代码:
const PhotoRoute = Router({mergeParams: true});
顺便说一句,此选项附带 Express 版本4.5。有关更多详细信息,请参阅API document