有谁知道是否有可能获得用于触发路线的路径?
例如,假设我有这个:
app.get('/user/:id', function(req, res) {});
使用以下简单的中间件
function(req, res, next) {
req.?
});
我希望能够进入/user/:id
中间件,而事实并非如此req.url
。
你想要的是req.route.path
。
例如:
app.get('/user/:id?', function(req, res){
console.log(req.route);
});
// outputs something like
{ path: '/user/:id?',
method: 'get',
callbacks: [ [Function] ],
keys: [ { name: 'id', optional: true } ],
regexp: /^\/user(?:\/([^\/]+?))?\/?$/i,
params: [ id: '12' ] }
http://expressjs.com/api.html#req.route
编辑:
正如评论中所解释的,进入req.route
中间件是困难的/ hacky。路由器中间件是填充req.route
对象的中间件,它可能处于比您正在开发的中间件更低的级别。
这样,req.route
只有在您插入路由器中间件以req
由Express本身执行之前为您解析中间件的情况下,获取才有可能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句