有谁知道是否可以获取用于触发路线的路径?
例如,假设我有这个:
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 http://expressjs.com/api.html#req.route
EDIT:
正如评论中所解释的,得到req.route
在中间件中是困难/hacky的。路由器中间件是填充req.route
对象,它可能处于比您正在开发的中间件更低的级别。
这样,得到req.route
仅当您连接到路由器中间件来解析req
在 Express 本身执行之前为您服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)