【发布时间】:2018-07-09 12:12:13
【问题描述】:
我正在尝试为我的应用程序构建动态路由。 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?
【问题讨论】:
-
有解决办法吗?我不想在 app.js 中这样做,因为有数百条路线,而且它不实用。我必须使用这个中间件
-
console.log(req.params.c) 或 console.log(req.params.m) 或 console.log(req.params.a) 或 console.log(req.params.c_name )
-
始终在参数开始前使用唯一关键字,例如 /product/:id 或 /product/:gender/type/:material
-
您能否将您声明的内容(用于初始化您的快速路由器)发布为
var router=express.Router........? -
@RatanUdayKumar req.params.c_name 在中间件中未定义。这就是整个问题。它只包含 m,a &c
标签: node.js express middleware