У меня есть сомнения в моем шаблоне дизайна в моем приложении Express,
поэтому я обертываю свой контроллер в try и catch, а метод catch отправляет обработчик (req, res) из контроллера и позже будет обработан функцией, которая отправляет ответ клиенту.
код более или менее похож на это:
const errorExceptionHandler = fn => (req, res, next) => {
fn(req, res, next).catch((err) => {
emitter.emit('onControllerError', {
err: err,
req: req,
res: res,
next: next
})
})
}
код, приведенный выше: ret, res и next, параметры по умолчанию, которые выражают.
emitter.on('onControllerError', params => {
const err = params.err
const req = params.req
const res = params.res
const next = params.next
if (!res.headerSent) {
res.send({
status: 500,
url: process.env.DEBUG ? req.url : undefined,
message: process.env.DEBUG ? err.message : "Something went wrong!"
})
}
})
и выше, как обрабатывается событие 'onControllerError', я беспокоюсь, не вызовет ли это проблемы позже, если трафик возрастет? или он отправит неверный ответ клиенту?