J'ai essayé:
app.get('/', function(req, res, next) {
var e = new Error('error message');
e.status = 400;
next(e);
});
et:
app.get('/', function(req, res, next) {
res.statusCode = 400;
var e = new Error('error message');
next(e);
});
mais toujours un code d'erreur de 500 est annoncé.
node.js
express
http-status-codes
technicien
la source
la source
Réponses:
Selon la documentation Express (version 4+), vous pouvez utiliser:
http://expressjs.com/4x/api.html#res.status
<= 3,8
la source
res.status(400).json({ error: 'message' })
res.sendStatus(401);
.res.send('Then you shall die')
..status()
est obsolète..sendStatus()
est juste un raccourci pour.status(code).send(codeName)
où lecodeName
est le texte de réponse HTTP standard pour le donnécode
.Une simple doublure;
la source
Je souhaite centraliser la création de la réponse d'erreur de cette manière:
J'ai donc toujours le même format de sortie d'erreur.
PS: bien sûr, vous pouvez créer un objet pour étendre l'erreur standard comme ceci:
la source
Vous pouvez utiliser
res.send('OMG :(', 404);
justeres.send(404);
la source
res.send(404)
est obsolète. C'est maintenantres.sendStatus(404)
. expressjs.com/en/api.html#res.sendStatusDans Express 4.0, ils ont bien compris :)
la source
La version du middleware errorHandler fournie avec certaines versions (peut-être plus anciennes?) D'Express semble avoir le code d'état codé en dur. La version documentée ici: http://www.senchalabs.org/connect/errorHandler.html vous permet en revanche de faire ce que vous essayez de faire. Alors, essayez peut-être de passer à la dernière version d'express / connect.
la source
D'après ce que j'ai vu dans Express 4.0, cela fonctionne pour moi. Ceci est un exemple d'intergiciel requis pour l'authentification.
la source
Ancienne question, mais toujours à venir sur Google. Dans la version actuelle d'Express (3.4.0), vous pouvez modifier res.statusCode avant d'appeler next (err):
la source
next
appelle le prochain gestionnaire qui dans express.js essaie généralement de rendre les pages d'erreur.express res.send obsolète (corps, statut). Utilisez plutôt res.status (status) .send (body)
la source
j'ai essayé
..mais cela me donnait une erreur :
Ce travail pour moi
la source
Je recommanderais de gérer l'envoi des codes d'erreur http en utilisant le package Boom .
la source