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