В обработчике маршрута Express есть ли способ иметь функцию, которая перемещает выполнение к следующей функции промежуточного программного обеспечения следующим образом?
const myRouteHandler = (req,res,next) => {
const user = getUserFromDb();
stuffThatMultipleHandlersUse(user, next);
// Only do this stuff, if the above function did not return
return res....
}
const stuffThatMultipleHandlersUse(user, next) {
if(!user.something) {
return next(new AppError(...));
}
}
В основном я пытаюсь взять кусочки функциональности, которые используются в нескольких обработчиках маршрутов, и переместить эту функциональность в свои собственные функции, чтобы мои обработчики маршрутов были короткими и DRY.
Но проблема с вышесказанным заключается в том, что даже если в функции сработает return next(new AppError(...));
, в обработчике маршрута все равно будет выполняться return res....
. Как я могу решить это?