Bad*_*ach 4 javascript middleware node.js express
所以例如 -
//Functions
var validationCheck = function(req, res, next){
if(req.session.userId && req.session.token)
next('validationCatch') //Is this possible to skip middleware if not needed?
else
next()
}
var getUserId = function(req, res, next){
req.session.userId = DB.getUserId
next()
}
var getToken = function(req, res, next){
req.session.token = DB.getToken
next()
}
//a catcher function to direct to next function depending on route
var validationCatch = function(req, res, next){
next()
}
//Routes
app.get(api + '/feature1', validationCheck, getUserId, getToken, validationCatch, feature1)
app.get(api + '/feature2', validationCheck, getUserId, getToken, validationCatch, feature2)
Run Code Online (Sandbox Code Playgroud)
如果信息已经从以前的路由中缓存,我的目标是跳过不必要的中间件。所以在上面的例子中,feature2 不必输入getUserId,getToken如果 feature1 已经被调用,从而使响应更快。
如果不可能,请说明一个更有效的架构来处理重复的验证过程。谢谢
不要直接注册回调,只需在validationCheck需要时调用它们。这是一个简单的例子getUserId:
var validationCheck = function(req, res, next){
if(req.session.userId)
next()
else {
getUserId(req, res, function(err){
next(err)
})
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |