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

pro*_*els 0 middleware node.js express

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

app.use('/:c_name/api/',middleware);
Run Code Online (Sandbox Code Playgroud)

中间件看起来像这样:

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;
});
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*d R 5

您将需要mergeParams在初始化时添加内容router,以保留其req.params价值

var router = express.Router({mergeParams: true});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!