Ich habe versucht:
app.get('/', function(req, res, next) {
var e = new Error('error message');
e.status = 400;
next(e);
});
und:
app.get('/', function(req, res, next) {
res.statusCode = 400;
var e = new Error('error message');
next(e);
});
Es wird jedoch immer ein Fehlercode von 500 angekündigt.
node.js
express
http-status-codes
Techniker
quelle
quelle
Antworten:
In den Express-Dokumenten (Version 4+) können Sie Folgendes verwenden:
http://expressjs.com/4x/api.html#res.status
<= 3,8
quelle
res.status(400).json({ error: 'message' })
res.sendStatus(401);
.res.send('Then you shall die')
..status()
veraltet ist..sendStatus()
ist nur eine Abkürzung für ,.status(code).send(codeName)
wo diecodeName
Standard - HTTP - Antworttext für die angegebene istcode
.Ein einfacher Einzeiler;
quelle
Ich möchte die Erstellung der Fehlerantwort folgendermaßen zentralisieren:
Ich habe also immer das gleiche Fehlerausgabeformat.
PS: Natürlich können Sie ein Objekt erstellen, um den Standardfehler wie folgt zu erweitern :
quelle
Sie können
res.send('OMG :(', 404);
nur verwendenres.send(404);
quelle
res.send(404)
ist es veraltet. Es ist jetztres.sendStatus(404)
. expressjs.com/en/api.html#res.sendStatusIn Express 4.0 haben sie es richtig gemacht :)
quelle
Die Version der errorHandler-Middleware, die mit einigen (möglicherweise älteren?) Express-Versionen gebündelt ist, scheint den Statuscode fest codiert zu haben. Mit der hier dokumentierten Version: http://www.senchalabs.org/connect/errorHandler.html können Sie dagegen das tun, was Sie versuchen. Versuchen Sie also vielleicht, ein Upgrade auf die neueste Version von Express / Connect durchzuführen.
quelle
Nach dem, was ich in Express 4.0 gesehen habe, funktioniert dies für mich. Dies ist ein Beispiel für die für die Authentifizierung erforderliche Middleware.
quelle
Alte Frage, aber immer noch bei Google. In der aktuellen Version von Express (3.4.0) können Sie res.statusCode ändern, bevor Sie next (err) aufrufen:
quelle
next
ruft den nächsten Handler auf, der in express.js normalerweise versucht, Fehlerseiten zu rendern.veraltete res.send ausdrücken (body, status). Verwenden Sie stattdessen res.status (status) .send (body)
quelle
Ich habe es versucht
..aber es gab mir Fehler :
Diese Arbeit für mich
quelle
Ich würde empfehlen, das Senden von http-Fehlercodes mithilfe des Boom- Pakets zu behandeln.
quelle