Node.js - 5.4 Ajouter un middleware dans Express
Un middleware est une fonction que la requête traverse avant d'arriver à la réponse finale. Express permet d'enchaîner plusieurs de ces fonctions, ce qui découpe le code en petites parties au lieu d'une seule grande fonction. Cette leçon montre comment en ajouter avec app.use().
Ajouter une fonction avec app.use()
Après avoir créé l'objet app, la méthode use() ajoute une nouvelle fonction middleware. La fonction passée à use() est exécutée pour chaque requête entrante. Elle reçoit trois arguments : la requête, la réponse et une fonction appelée next, que l'on peut nommer comme on veut.
app.use((req, res, next) => {
console.log('middleware');
next();
});
Passer à la suite avec next()
La fonction next() permet à la requête de passer au middleware suivant. Si on ne l'appelle pas, et qu'aucune réponse n'est envoyée, la requête reste sans réponse et le navigateur attend.
Un middleware doit donc soit appeler next(), soit envoyer une réponse.
En résumé
Un middleware est une fonction que la requête traverse dans l'ordre. La méthode use() l'ajoute à l'application. Chaque middleware doit appeler next() pour laisser passer la requête, ou envoyer une réponse.
Points clés
- Un middleware est une fonction exécutée pendant le traitement d'une requête.
- app.use() ajoute un middleware à l'application.
- Chaque middleware reçoit la requête, la réponse et next.
- next() passe la requête au middleware suivant.
- Sans next(), il faut envoyer une réponse, sinon la requête reste en attente.
Questions fréquentes
Quel nom donner au troisième argument ?
Il peut porter n'importe quel nom. Le nom next est le plus courant, car il indique son rôle.
Que se passe-t-il si on oublie next() ?
La requête ne va pas plus loin. Si aucun middleware n'envoie de réponse, le navigateur reste sans réponse.
Dans quel ordre les middleware s'exécutent-ils ?
Express les exécute de haut en bas, dans l'ordre où ils sont déclarés dans le fichier.