221 votes

Comment spécifier le code d'erreur HTTP en utilisant Express.js ?

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é.

1 votes

Ma réponse à une question connexe pourrait vous aider : stackoverflow.com/questions/10170857/

2 votes

Pourriez-vous mettre à jour la réponse acceptée ?

0 votes

0voto

Joe Privett Points 55

Je recommande de gérer l'envoi des codes d'erreur http en utilisant la fonction Boom paquet.

0voto

Mr.B Points 1725

De manière asynchrone :

  myNodeJs.processAsync(pays)
        .then((result) => {
            myLog.logger.info('API 200 OK');
            res.statusCode = 200;
            res.json(result);
            myLog.logger.response(result);
        })
        .fail((error) => {
            if (error instanceof myTypes.types.MyError) {
                log.logger.info(`My Custom Error:${error.toString()}`);
                res.statusCode = 400;
                res.json(error);
            } else {
                log.logger.error(error);
                res.statusCode = 500;
                // it seems standard errors do not go properly into json by themselves
                res.json({
                    name: error.name,
                    message: error.message
                });
            }
            log.logger.response(error);
        })
        .done();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X