Javascript Express baseUrl参数不可用
假设我有以下路线:Javascript Express baseUrl参数不可用,javascript,node.js,express,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(re
// 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}”
,但我没有。为什么基本路由中定义的:userId
没有被传递?这是一个与嵌套路由器相关的问题。
您需要将子路由器的mergeParams设置为true,以便从父路由器访问params
因此,请尝试以下代码:
const PhotoRoute = Router({mergeParams: true});
顺便说一句,此选项随4.5版Express一起提供。有关更多详细信息,请参阅