При использовании Express возможно ли вернуть ошибку изнутри IIFE и перейти к промежуточному программному обеспечению для обработки ошибок?
Да, это работает нормально. Это вызовет next(err)
просто отлично. Но ваш return
вернется только из IIFE, а остальная часть вашего обработчика запросов после того, как try/catch
все равно выполнится (не уверен, хотите ли вы этого или нет).
FYI, это возможно, проще объявить обработчик запроса как async
, и тогда вам не понадобится обертка IIFE:
app.get('/', async function(req, res, next) {
try {
let example = await someLogic(x);
console.log('main endpoint');
// send some response here
} catch(err) {
return next(new Error('oops'));
}
});