1
所以,这件小事。我们所知道的表达有内置的默认错误处理程序,预计四个参数(ERR,REQ,水库,下一个)来处理“同步异常”之类的ReferenceError,类型错误等:究竟Express.js如何处理错误?
UPDATE:这个问题是快递 - 具体,而不是如何捕捉未处理的异常/等。我想知道如何在第一个代码块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'...
或域/承诺/集群东西。
也许我想念一些东西。
任何人都可以澄清?
感谢您的详细解答。我只是做了自己的'快车'来重现这种行为。非常简单和优雅的处理,对我来说。 – loadaverage