Middlewares
Comme la plupart des frameworks web, Express permet d'utiliser des middlewares tiers ou implémenter des middlewares personnalisés.

Rôle des middlewares

Les middlewares permettent :
  • D'exécuter du code à chaque requête.
  • Modifier la requête et/ou la réponse.
  • Interrompre la requête.
  • Appeler le middleware suivant ou interrompre la chaîne de middlewares.

Types de middlewares

Il existe plusieurs types de middlewares :

Application-level

Le middleware est appliqué à l'ensemble des requêtes avec la méthode app.use ou sur un type de requêtes en particulier avec les méthode app.get ou app.post etc... ou encore sur une URL en particulier :
app.get('/users/:userId', (req, res, next) => {
console.log(req.params.userId);
next();
});

Router-level

Ce middleware fonctionne similairement à l' application-level mais ne s'applique qu'au router en question et donc une partie des URLs.

Error-handling

Ce middleware permet de capturer uniquement les erreurs. Il s'implémente en ajoutant simplement le paramètre err à la fonction du middleware.
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Shit! Something went wrong!');
});

Built-in

Express fournit des middlewares natifs comme express.static pour servir les fichiers statiques.
Le middleware express.static permet de définir les ressources statiques distribuées par l'application.
app.use('/assets', express.static('public'));
Il reste préférable d'utiliser un CDN (Content Delivery Network) pour servir des ressources statiques ou encore mieux : Firebase Hosting https://firebase.google.com/docs/hosting/, AWS Cloudfront + S3, Netlify https://www.netlify.com/...

Third-party

Tous les middlewares disponibles sur NPM.
Copy link
Outline
Rôle des middlewares
Types de middlewares
Application-level
Router-level
Error-handling
Built-in
Third-party