Если у вас есть несколько обработчиков ошибок, они будут вызываться в порядке, указанном вами в выражениях .use. Каждый обработчик ошибок должен делать следующее (ошибаться), чтобы передать ошибку.
Взято из документации по expressjs:
app.use(logErrors)
app.use(clientErrorHandler)
app.use(errorHandler)
В качестве примера из документации:
function errorHandler (err, req, res, next) {
if (res.headersSent) {
return next(err)
}
res.status(500)
res.render('error', { error: err })
}
Итак, ошибка передается от обработчика к обработчику с помощью следующего оператора (err). И внутри этого обработчика вы решаете, что делать. Например, вы можете проверить наличие конкретной ошибки и действовать только с этой конкретной ошибкой.
документация expressjs для обработки ошибок