Menu
CoddyTech

Une réponse d’erreur

Fait partie de la section Les bases d’Express du Journey Node.js de Coddy. Leçon 17 sur 23.

Une route peut échouer parce qu’un problème est survenu sur le serveur. Lever une erreur transmet cet échec à Express. Un gestionnaire d’erreurs est un middleware qui possède quatre paramètres, dont err en premier. Express transmet les erreurs levées à ce type de middleware.

app.use((err, req, res, next) => {
    res.status(500).json({error: 'Try later'});
});

Place le gestionnaire après les routes. Le client doit recevoir un court message, tandis que le serveur peut consigner les détails. Conserve les quatre paramètres même si next n’est pas utilisé : Express se base sur la forme de la fonction pour reconnaître les gestionnaires d’erreurs.

Avant d’ajouter un gestionnaire, GET /broken renvoie la propre page d’erreur HTML d’Express. Appeler next(err) transmet également une erreur au gestionnaire d’erreurs ; appeler next() poursuit normalement.

challenge icon

Défi

Facile

« Jouer » ne lance que practice-errors/server.js. Les fichiers de votre Recipe Box restent intacts et vous les retrouverez dans la leçon suivante.

Cliquez sur « Jouer » et envoyez GET /broken pour voir la page d’erreur par défaut. Ajoutez un gestionnaire d’erreurs après les routes. Consignez err.message avec console.error, puis renvoyez le statut 500 et {"error":"Try later"}. La réponse ne doit pas révéler Database offline, mais la Console doit l’afficher.

Les routes qui déclenchent une erreur se trouvent dans le fichier verrouillé practice-errors/routes.js. Conservez son montage ; écrivez le gestionnaire dans server.js.

Essayez vous-même

import routes from './routes.js';
import express from 'express';
const app = express();
app.use(routes);
// Ajoutez le gestionnaire d'erreurs ici.
app.listen(3000);

Toutes les leçons de Les bases d’Express

Entraînez-vous par vous-même : Playground Express