2016-12-27 69 views
3

我有中间件说:如何知道从哪个路径调用中间件?

var app = express();  

var someMiddleware = function(req, res, next){ 
    //here i want to know for which route it's executing for eg. if i hit my app with xyz.com/xyz/123 it will hit route defined below which i want to identify in this middleware execution 
}; 

app.get('xyz/:parameter', someMiddleware,function(req, res, next){ 
    //some action on request 
}); 

所以,这里在执行我要检查路线中间件正好被要求对那些。

+0

'console.log(req.url)'? –

+0

因此,要求req可以是test/111或test/112,其中111和112是req参数。并且两者都是相同的test /:testId路由。 –

回答

1

要做到这一点,唯一的方法是跟踪传入的Request object,并有选择地记录其部分内容,以了解当前正在执行的路由中正在使用哪些URL,查询字符串等。

在你的中间件功能,比如,你可以写这样的事情:

var someMiddleware = function(req, res, next) { 
    console.log('method:', req.method); 
    console.log('originalUrl:', req.originalUrl); 
}; 

HTTP方法的组合,以及作为originalURL会给你足够的信息来清楚地看到什么路线是怎么回事最终被调用。

+1

req.route.path这为我工作。在我登录req对象之后。谢谢。 –

相关问题