Traduire cette page

Utilisation du middleware

Express est un framework web de routage et de middleware qui possède des fonctionnalités minimales : Une application Express est essentiellement une série d’appels de fonctions de middleware.

Les fonctions Middleware sont des fonctions qui ont accès à l’objet request object (req), l’objet réponse (res), et la prochaine fonction du middleware dans le cycle de réponse de l’application. La prochaine fonction du middleware est généralement dénotée par une variable nommée next.

Les fonctions Middleware peuvent effectuer les tâches suivantes :

  • Exécuter n’importe quel code.
  • Effectuez des modifications à la requête et aux objets de réponse.
  • Termine le cycle de réponse de la requête.
  • Appeler la prochaine fonction du middleware dans la pile.

Si la fonction middleware actuelle ne met pas fin au cycle de réponse de requête, elle doit appeler next() pour passer le contrôle à la prochaine fonction du middleware. Sinon, la demande sera laissée en suspens.

Une application Express peut utiliser les types de middleware suivants :

Vous pouvez charger le middleware au niveau de l’application et du routeur avec un chemin de montage optionnel. Vous pouvez également charger une série de fonctions middleware ensemble, ce qui crée une sous-pile du système middleware à un point de montage.

Outil d’interface de l’application

Lier le middleware au niveau de l’application à une instance de l’objet app object en utilisant app.use() et app. Les fonctions ETHOD(), où METHOD est la méthode HTTP de la requête que la fonction middleware gère (comme GET, PUT ou POST) en minuscule.

Cet exemple montre une fonction middleware sans chemin de montage. La fonction est exécutée chaque fois que l’application reçoit une requête.

index.cjs
const express = require('express');
const app = express();
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});

Cet exemple montre une fonction middleware montée sur le chemin /user/:id. La fonction est exécutée pour n’importe quel type de requête HTTP sur le chemin /user/:id.

app.use('/user/:id', (req, res, next) => {
console.log('Request Type:', req.method);
next();
});

Cet exemple montre une route et sa fonction de gestion (système middleware). La fonction gère les requêtes GET vers le chemin /user/:id.

app.get('/user/:id', (req, res, next) => {
res.send('USER');
});

Voici un exemple de chargement d’une série de fonctions middleware à un point de montage, avec un chemin de montage. Il illustre une sous-pile middleware qui affiche les informations de requête pour tout type de requête HTTP vers le chemin /user/:id.

app.use(
'/user/:id',
(req, res, next) => {
console.log('Request URL:', req.originalUrl);
next();
},
(req, res, next) => {
console.log('Request Type:', req.method);
next();
}
);