Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express baseUrl参数不可用_Javascript_Node.js_Express - Fatal编程技术网

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一起提供。有关更多详细信息,请参阅