На самом деле то, что вы сделали, противоречит шаблону. Я испытал на себе схему, о которой вы упомянули, и с ней есть некоторые тонкие проблемы.

Допустим, мы хотим вызвать некоторых пользователей и у нас есть ГЛОБАЛЬНЫЙ обработчик ошибок внутри среды Express.js, рассмотрим код ниже:

app.get (‘/ someRoute’, async (req, res, next) = ›{

let foundUser = await USER.find (). catch (error = ›{

вернуться далее (handleError (ошибка);

});

* res.send («у нас есть пользователь»);

});

Дело здесь в handleError, в моем случае я настроил этот глобальный обработчик ошибок, отправив клиенту правильное сообщение об ошибке. поэтому заголовки отправляются один раз, а после обработки ошибки мы попадаем в область видимости *, а ответ будет отправлен дважды, и вы обнаружите, что «заголовки не могут быть отправлены после отправки» внутри node.js

Золотое правило - не писать кода после блока catch. поскольку коды после блока catch будут выполняться всегда, и это создает большую путаницу, особенно если вы поместите это внутри блоков if-else (мой случай);

Так что, на мой взгляд, триггер - победитель.