Yo he tratado:
app.get('/', function(req, res, next) {
var e = new Error('error message');
e.status = 400;
next(e);
});
y:
app.get('/', function(req, res, next) {
res.statusCode = 400;
var e = new Error('error message');
next(e);
});
pero siempre se anuncia un código de error de 500.
node.js
express
http-status-codes
hombre de tecnología
fuente
fuente
Respuestas:
Según los documentos Express (Versión 4+), puede usar:
http://expressjs.com/4x/api.html#res.status
<= 3.8
fuente
res.status(400).json({ error: 'message' })
res.sendStatus(401);
.res.send('Then you shall die')
..status()
está en desuso..sendStatus()
es solo una abreviatura de.status(code).send(codeName)
dóndecodeName
está el texto de respuesta HTTP estándar para el dadocode
.Un simple trazador de líneas;
fuente
Me gustaría centralizar la creación de la respuesta de error de esta manera:
Así que siempre tengo el mismo formato de salida de error.
PD: por supuesto, podría crear un objeto para extender el error estándar como este:
fuente
Puedes usar
res.send('OMG :(', 404);
solores.send(404);
fuente
res.send(404)
está en desuso. Es ahorares.sendStatus(404)
. expressjs.com/en/api.html#res.sendStatusEn express 4.0 lo hicieron bien :)
fuente
La versión del middleware errorHandler incluido con algunas (¿quizás más antiguas?) De express parece tener el código de estado codificado. La versión documentada aquí: http://www.senchalabs.org/connect/errorHandler.html, por otro lado, le permite hacer lo que está tratando de hacer. Entonces, quizás intente actualizar a la última versión de express / connect.
fuente
Por lo que vi en Express 4.0, esto funciona para mí. Este es un ejemplo de autenticación que requiere middleware.
fuente
Antigua pregunta, pero aún aparece en Google. En la versión actual de Express (3.4.0), puede alterar res.statusCode antes de llamar a next (err):
fuente
next
está llamando al siguiente controlador que en express.js generalmente está tratando de representar páginas de error.express res.send en desuso (cuerpo, estado). Utilice res.status (estado) .send (cuerpo) en su lugar
fuente
Lo intenté
... pero me estaba dando un error :
Este trabajo para mi
fuente
Recomendaría manejar el envío de códigos de error http utilizando el paquete Boom .
fuente