【发布时间】:2018-01-04 04:46:22
【问题描述】:
所以,微不足道的事情。我们都知道 Express 有内置的默认错误处理程序,它需要四个参数(err、req、res、next)来处理“同步异常”,如 ReferenceError、TypeError 等:
更新: 这个问题是 Express 特有的,而不是关于如何捕获未处理的异常/等。我想知道 Express 在第一个代码块中如何处理用户定义的异常。异步的第二个例子。异常不直接属于这个问题。
const express = require('express')();
express.all('*', (req, res) => {
throw new Error('my own error');
res
.send('okay?');
});
express.use((err, req, res, next) => {
console.error(err.stack);
res
.status(503)
.send('Express is still up and running');
}).listen(3000);
但不是这个:
const express = require('express')();
express.all('*', (req, res) => {
process.nextTick(() => {
throw new Error('my own error');
});
res
.send('okay?');
});
express.use((err, req, res, next) => {
console.error(err.stack);
res
.status(503)
.send('Won\'t be executed');
}).listen(3000);
但是我很好奇这个处理程序的实现。
我找不到类似的东西
process.on('uncaughtException'... 或域/Promises/cluster。
也许我错过了什么。
谁能澄清一下?
【问题讨论】:
标签: node.js express error-handling try-catch