无法访问中间件内部的app.use()的req.params

时间:2018-07-09 12:12:13

标签: node.js express middleware

我正在尝试为我的应用程序构建动态路由。 app.js中的代码如下:

app.use('/:c_name/api/',middleware);

中间件如下:

var router = require('express').Router();
router.get('/:m/:c/:a',(req, res, next) => {
console.log(req.params);
var controller = "./fe-ser/leg/fe/cli/"+req.params.c_name+"/main/process/"+req.params.module+"/controllers/"+req.params.controller;
});

现在要解析中间件内部的路由,我需要c_name的值,但无法使用req.params.c_name访问它。 req.params仅包含mca

因此,问题是,如何从中间件访问c_name

1 个答案:

答案 0 :(得分:4)

您需要在初始化mergeParams时添加router,以保留req.params的值

var router = express.Router({mergeParams: true});

希望这会有所帮助!