Eu tentei:
app.get('/', function(req, res, next) {
var e = new Error('error message');
e.status = 400;
next(e);
});
e:
app.get('/', function(req, res, next) {
res.statusCode = 400;
var e = new Error('error message');
next(e);
});
mas sempre é anunciado um código de erro 500.
node.js
express
http-status-codes
técnico
fonte
fonte
Respostas:
De acordo com os documentos do Express (versão 4+), você pode usar:
http://expressjs.com/4x/api.html#res.status
<= 3,8
fonte
res.status(400).json({ error: 'message' })
res.sendStatus(401);
.res.send('Then you shall die')
..status()
está obsoleta..sendStatus()
é apenas uma abreviação de.status(code).send(codeName)
ondecodeName
está o texto de resposta HTTP padrão para o dadocode
.Um forro simples;
fonte
Eu gostaria de centralizar a criação da resposta de erro desta maneira:
Então, eu sempre tenho o mesmo formato de saída de erro.
PS: é claro que você pode criar um objeto para estender o erro padrão como este:
fonte
Você pode usar
res.send('OMG :(', 404);
apenasres.send(404);
fonte
res.send(404)
está obsoleto. É agorares.sendStatus(404)
. expressjs.com/en/api.html#res.sendStatusNo Express 4.0, eles acertaram :)
fonte
A versão do middleware errorHandler que acompanha algumas versões (talvez mais antigas?) Do express parece ter o código de status codificado. A versão documentada aqui: http://www.senchalabs.org/connect/errorHandler.html, por outro lado, permite fazer o que você está tentando fazer. Portanto, talvez esteja tentando atualizar para a versão mais recente do express / connect.
fonte
Pelo que vi no Express 4.0, isso funciona para mim. Este é um exemplo de middleware necessário para autenticação.
fonte
Pergunta antiga, mas ainda está chegando no Google. Na versão atual do Express (3.4.0), você pode alterar o res.statusCode antes de chamar next (err):
fonte
next
está chamando o próximo manipulador que, no express.js, geralmente tenta processar páginas de erro.expressar res.send obsoleto (corpo, status). Use res.status (status) .send (body) em vez disso
fonte
eu tentei
..mas estava me dando erro :
Esse trabalho pra mim
fonte
Eu recomendaria lidar com o envio de códigos de erro http usando o pacote Boom .
fonte