2014-05-12 423 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