Так ПРИМЕР-Любой способ условно пропускать промежуточное программное обеспечение со следующим() в выражении?
//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)
Моя цель состоит в том, чтобы пропустить ненужное промежуточное программное обеспечение, если информация уже кэшируются от предыдущих маршрутов. Таким образом, в приведенном выше примере функция2 не должна вводить getUserId
и getToken
, если функция1 уже вызвана, что делает ответ быстрее.
Если это невозможно, укажите более эффективную архитектуру для обработки повторяющихся процессов проверки. Спасибо