0
以下代碼邏輯。我發現「checkLogin」,「checkAuthorization」在user.load之前被調用。有沒有人可以教我如何更改代碼,以便users.load首先被調用?快速應用路由的順序
app.param('userId', users.load);
app.get('/users/:userId', checkLogin, checkAuthorization, users.show)
以下代碼邏輯。我發現「checkLogin」,「checkAuthorization」在user.load之前被調用。有沒有人可以教我如何更改代碼,以便users.load首先被調用?快速應用路由的順序
app.param('userId', users.load);
app.get('/users/:userId', checkLogin, checkAuthorization, users.show)
由於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();
});
對不起,我在原來的職位無緣結腸。我確實需要一個參數作爲'userId',並期望在調用'get'中間件之前首先調用參數處理程序。我想'app.param'處理程序將在'app.get'中間件之前被調用。 – user3627466