Próbowałem:
app.get('/', function(req, res, next) {
var e = new Error('error message');
e.status = 400;
next(e);
});
i:
app.get('/', function(req, res, next) {
res.statusCode = 400;
var e = new Error('error message');
next(e);
});
ale zawsze podawany jest kod błędu 500.
node.js
express
http-status-codes
technik
źródło
źródło
Odpowiedzi:
Zgodnie z dokumentami Express (wersja 4+) możesz użyć:
http://expressjs.com/4x/api.html#res.status
<= 3,8
źródło
res.status(400).json({ error: 'message' })
res.sendStatus(401);
.res.send('Then you shall die')
..status()
jest przestarzała..sendStatus()
jest tylko skrótem,.status(code).send(codeName)
gdziecodeName
jest standardowym tekstem odpowiedzi HTTP dla danegocode
.Prosta jedna wkładka;
źródło
Chciałbym scentralizować tworzenie odpowiedzi na błąd w ten sposób:
Więc zawsze mam ten sam format wyjściowy błędów.
PS: oczywiście możesz utworzyć obiekt, aby rozszerzyć standardowy błąd w następujący sposób:
źródło
Możesz użyć
res.send('OMG :(', 404);
tylkores.send(404);
źródło
res.send(404)
jest przestarzały. Teraz jestres.sendStatus(404)
. expressjs.com/en/api.html#res.sendStatusW express 4.0 dobrze to zrozumieli :)
źródło
Wydaje się, że wersja oprogramowania pośredniego ErrorHandler dołączona do niektórych (być może starszych?) Wersji programu Express ma kod stanu na stałe. Wersja udokumentowana tutaj: http://www.senchalabs.org/connect/errorHandler.html z drugiej strony pozwala robić to, co próbujesz zrobić. Więc może próbując zaktualizować do najnowszej wersji express / connect.
źródło
Z tego, co widziałem w Express 4.0, działa to dla mnie. To jest przykład oprogramowania pośredniego wymagającego uwierzytelnienia.
źródło
Stare pytanie, ale wciąż pojawia się w Google. W aktualnej wersji Express (3.4.0) możesz zmienić res.statusCode przed wywołaniem next (err):
źródło
next
wywołuje następny program obsługi, który w express.js zwykle próbuje renderować strony błędów.express deprecated res.send (treść, status). Zamiast tego użyj res.status (status) .send (body)
źródło
próbowałem
..ale dawało mi to błąd :
Ta praca dla mnie
źródło
Poleciłbym obsługę wysyłania kodów błędów http przy użyciu pakietu Boom .
źródło