2014-05-12 168 views
0

以下代码逻辑。我发现“checkLogin”,“checkAuthorization”在user.load之前被调用。有没有人可以教我如何更改代码,以便users.load首先被调用?快速应用路由的顺序

app.param('userId', users.load); 
app.get('/users/:userId', checkLogin, checkAuthorization, users.show) 

回答

0

由于app.param映射逻辑路由参数(见http://expressjs.com/4x/api.html#app.param)你好像在/users/:userId是缺少一个冒号。

但是,如果路线/users/userId是正确的,并且您不想要参数,那么您不应该使用app.param。相反,你可以注册一个通用的中间件功能,以处理任何你想要之前谈到做处理get(定义app.get之前做到这一点):

app.use(function(request, response, next){ 
    // do stuff 
    next(); 
}); 
+0

对不起,我在原来的职位无缘结肠。我确实需要一个参数作为'userId',并期望在调用'get'中间件之前首先调用参数处理程序。我想'app.param'处理程序将在'app.get'中间件之前被调用。 – user3627466