Also, das Triviale. Alles, was wir wissen, dass Express verfügt über eine integrierte in Handler Standardfehler, der vier Argumente erwarten (err, erf, res, nächste) zu handhaben „synchrone Ausnahmen“ wie Reference, Typeerror, etc:Wie genau behandelt Express.js Fehler?
UPDATE: diese Frage Express , nicht darüber, wie unbehandelte Ausnahmen/etc. Ich möchte wissen, wie im ersten Codeblock Express benutzerdefinierte Ausnahme behandeln kann. Zweites Beispiel mit Async. Ausnahme gehört nicht direkt zu dieser Frage.
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);
Aber nicht dies:
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);
Aber ich bin über die Realisierung dieses Handler neugierig.
Ich kann nichts wie
process.on('uncaughtException'...
oder Domänen/Promises/cluster finden.
Vielleicht vermisse ich etwas.
Kann jemand klären?
Danke für ausführliche Antwort. Ich habe meinen eigenen 'Express' gemacht, um dieses Verhalten zu reproduzieren. Sehr einfache und elegante Handhabung wie für mich. – loadaverage