Wie erhalten Sie schöne Fehlermeldungen an Kunden in Express?Übergeben von Fehlern an den Client in Express
app.use(errorHandler);
function errorHandler(err, req, res, next) {
res.send(err);
}
app.post('/login', usernameIsValid, pwdIsValid, createToken);
In usernameIsValid
erstelle ich eine new Error
mit einer Nachricht und den Status und next(err)
nennen. Nun, dies umgeht pwdIsValid
und createToken
wie es sollte ABER die seltsame Sache ist mein FehlerHandler protokolliert den Fehler ohne console.log
. Verwende ich den Standard-Fehlerhandler in Express irgendwo? Wie schalte ich es aus? Ich habe sowohl die Produktion als auch die Entwicklung für NODE_ENV
versucht.
Auf dem Client xhr.responseText
ist meine error.message + was aussieht wie ein Stack-Trace? Ich habe sogar versucht, nur eine Fehlermeldung zu senden, aber es sieht genauso aus.
Eine Möglichkeit, mit dieser Unordnung umzugehen, besteht darin, jede Middleware (falls ein Fehler auftritt) eine Fehlerzeichenfolge wie req.data.err = "invalid username"
zu erstellen und dann sicherzustellen, dass jede folgende Middleware req.data.err
prüft, ob die Zeichenfolge vorhanden ist. Aber diese höllisch langweilig ist> _ <
NODE_ENV = Produktion hilft nicht. Ich habe es versucht. –