У меня много кода, основанного на обещаниях ES6, который работает внутри моего экспресс-приложения. Если есть ошибка, которая никогда не обнаруживается, я использую следующий код для ее устранения:
process.on('unhandledRejection', function(reason, p) {
console.log("Unhandled Rejection:", reason.stack);
process.exit(1);
});
Это отлично подходит для целей отладки.
Однако в процессе производства я хотел бы запустить обработчик ошибок 500, чтобы показать пользователю стандартную страницу «Что-то пошло не так». У меня есть этот обработчик ошибок, который в настоящее время работает для других исключений:
app.use(function(error, req, res, next) {
res.status(500);
res.render('500');
});
Помещение unhandledRejection внутрь промежуточного программного обеспечения не работает, поскольку оно асинхронно, и в результате возникает Error: Can't render headers after they are sent to the client.
Как мне сделать рендеринг страницы 500 на unhandledRejection
?