5. Communication entre les Middlewares

Alors, nous avons déjà eu un aperçu de la puissance des Middlewares précédemment, mais nous devons aller plus loin. En effet, une des forces majeures des Middlewares, c’est qu’ils peuvent être combinés entre eux et ainsi former une chaîne de traitements complète.

Si nous devions résumer la manière dont communiquent les Middlewares entre eux dans un schéma, cela donnerait ceci :

Une autre force majeure des Middlewares, c’est leur capacité à communiquer entre eux !

En fait, tous les Middlewares sont interconnectés et communiquent entre eux. Pour cela, chaque requête entrante vers notre API Rest est transmise au premier Middleware de la chaîne, puis celui-ci transmet la requête au Middleware suivant… et ainsi de suite jusqu’au point de terminaison de notre API Rest. Ensuite, le mécanisme est identique pour notre réponse HTTP, mais dans le sens inverse.

Les Middlewares communiquent donc entre eux en se transmettant leurs paramètres respectifs. Mais il est tout à fait possible, et même courant, de chaîner des Middlewares qui ne se transmettent pas d’information entre eux. Simplement pour additionner plusieurs traitements les uns à la suite des autres.

Pour continuer sur cette lancée, je vous propose pour la suite d’ajouter un deuxième Middleware à notre API Rest, et de regarder comment le combiner avec le Middleware « Morgan » précédent.

Aussi, il faut bien penser à appeler la fonction next() pour chaque fonction de traitement de vos Middlewares. C’est ce qui permet de transférer l’exécution au Middleware suivant dans la chaîne de traitement. Sinon, la requête entrante restera bloquée !