我正在尝试为我的应用程序构建动态路由。 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
仅包含m
,c
和a
。
因此,问题是,如何从中间件访问c_name
?
答案 0 :(得分:4)
您需要在初始化mergeParams
时添加router
,以保留req.params
的值
var router = express.Router({mergeParams: true});
希望这会有所帮助!