Le Guide Node.js par Wishtack
  • Le Guide Node.js par Wishtack
  • ECMAScript 6+
  • TypeScript
  • Tools
  • Node.js
    • Pourquoi Node.js ?
    • Modules
    • Global objects
    • Events & Listeners
    • Streams
    • Error Management
  • Express
    • Getting Started
    • Express Generator
    • Middlewares
    • Routing
    • Templating
    • Quelques Liens
  • LoopBack
  • Testing
  • Databases
  • WebSocket
  • Sécurité
Powered by GitBook
On this page
  • Rôle des middlewares
  • Types de middlewares
  • Application-level
  • Router-level
  • Error-handling
  • Built-in
  • Third-party
  1. Express

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'));

Third-party

Tous les middlewares disponibles sur NPM.

PreviousExpress GeneratorNextRouting

Last updated 6 years ago

Il reste préférable d'utiliser un CDN (Content Delivery Network) pour servir des ressources statiques ou encore mieux : Firebase Hosting , AWS Cloudfront + S3, Netlify ...

https://firebase.google.com/docs/hosting/
https://www.netlify.com/