Express baseUrl param不可用

时间:2018-04-27 23:58:24

标签: javascript node.js express

我们说我有以下路线:

// 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没有被传递?

1 个答案:

答案 0 :(得分:0)

这是与嵌套路由器相关的问题。 您需要将子路由器的 mergeParams 设置为 true ,才能从父路由器访问参数

请尝试以下代码:

const PhotoRoute = Router({mergeParams: true});

顺便说一句,此选项附带 Express 版本4.5。有关更多详细信息,请参阅API document