‫Instructeur : Dans les
‫deux dernières conférences, j'espère que vous avez commencé
‫à acquérir les bases du développement Express.
‫C'est donc le moment idéal pour approfondir un peu
‫le fonctionnement d'Express,
‫et pour cela, nous devons parler du
‫middleware et du cycle requête-réponse.
‫L'essence du développement Express est donc
‫de
‫comprendre et d'utiliser le cycle demande-réponse.
‫Je veux donc rendre cette idée
‫très claire de manière visuelle dans cette vidéo.
‫Ainsi, pour démarrer le cycle demande-réponse,
‫l'application Express reçoit une demande lorsque quelqu'un accède à un serveur pour
‫lequel elle créera ensuite un objet de
‫demande et de réponse.
‫Ces données seront ensuite utilisées
‫et traitées afin de générer et de renvoyer une réponse significative.
‫Maintenant, afin de traiter ces données,
‫dans Express, nous utilisons quelque chose appelé middleware,
‫qui peut manipuler la requête ou l'objet de réponse.
‫Ou exécutez vraiment tout autre code que nous aimons.
‫Ainsi, le middleware ne doit pas
‫toujours concerner uniquement la requête ou l'objet de
‫réponse, mais il s'agit généralement principalement de la requête.
‫Et en fait, nous utilisions déjà un middleware auparavant.
‫Nous avons utilisé Express dot JSON pour accéder au corps de la requête sur
‫l'objet de la requête.
‫Vous vous en souvenez ?
‫Maintenant, cela s'appelle middleware rappelez-vous parce
‫que c'est une fonction qui est exécutée entre, donc au
‫milieu de la réception de la demande et
‫de l'envoi de la réponse.
‫Et effectivement, on peut dire que dans
‫Express, tout est middleware.
‫Même nos définitions d'itinéraires.
‫Encore une fois, même lorsque nous avons défini nos routes, nous
‫pouvons considérer les fonctions de gestion de routes que nous avons écrites
‫comme des fonctions middleware.
‫Ce sont simplement des
‫fonctions middleware qui ne sont exécutées que pour certaines routes.
‫D'accord?
‫Maintenant, quelques exemples d'intergiciels sont Express dot JSON, également
‫appelé analyseur corporel, et que nous
‫avons déjà utilisé auparavant.
‫Ou une fonctionnalité de
‫journalisation, ou la définition d'en-têtes http spécifiques.
‫Les possibilités sont vraiment infinies avec le middleware.
‫Très bien, et maintenant en termes plus
‫techniques, nous disons que tous les middlewares
‫que nous utilisons
‫ensemble dans notre application sont appelés Middleware Stack.
‫Ce qu'il est très important de garder à l'esprit
‫ici, c'est que l'ordre des middleware dans la pile
‫est en fait défini par l'ordre dans lequel
‫ils sont définis dans le code.
‫Ainsi, un middleware qui apparaît en premier dans
‫le code est exécuté avant celui qui apparaît plus tard.
‫Et donc l'ordre du code compte beaucoup dans Express.
‫D'accord?
‫Maintenant, vous pouvez penser à l'ensemble du processus comme celui-ci,
‫nos objets de demande et de
‫réponse qui ont été
‫créés au début passent par chaque middleware où ils sont
‫traités, ou où juste un autre code est exécuté.
‫Ensuite, à la fin de chaque fonction middleware, une
‫fonction suivante est appelée, qui est
‫une fonction à laquelle nous avons accès
‫dans chaque fonction middleware.
‫Tout comme les objets de requête et de réponse.
‫Et nous verrons bien sûr cela en code dans la prochaine vidéo.
‫Ainsi, lorsque nous appelons la fonction
‫suivante, le prochain middleware de la pile sera exécuté
‫avec exactement le même objet de requête et de réponse.
‫Et cela se produit avec tous les middlewares jusqu'à
‫ce que nous atteignions le dernier.
‫Et ainsi, juste
‫comme ça, la requête initiale et l'objet
‫de réponse parcourent chaque middleware étape par étape.
‫Et vous pouvez considérer tout
‫ce processus comme une sorte de pipeline par lequel nos données
‫transitent, comme si elles étaient acheminées de la demande à la réponse finale.
‫D'accord?
‫Maintenant, à propos de cette dernière fonction middleware,
‫il s'agit généralement d'un gestionnaire de route comme nous l'avons codé auparavant.
‫Ainsi, dans ce gestionnaire, nous n'appelons pas la fonction
‫next pour passer au middleware suivant.
‫Au lieu de cela, nous renvoyons finalement les
‫données de réponse au client.
‫Et comme
‫cela, nous terminons ensuite le cycle dit de demande-réponse.
‫Donc, le cycle demande-réponse est vraiment tout ce dont
‫nous avons parlé ici ensemble.
‫Cela commence par la demande entrante, puis
‫l'exécution de tous les middlewares de la pile middleware
‫étape par étape,
‫et enfin l'envoi de la réponse pour terminer le cycle.
‫Alors vous voyez, ce n'est vraiment pas compliqué.
‫C'est en fait juste un processus linéaire.
‫Mais j'aurais aimé que quelqu'un me montre quelque
‫chose comme ça quand j'apprenais à créer des applications Express.
‫Je veux dire que
‫je pouvais les construire, mais au début, je
‫ne comprenais pas vraiment tout ce cycle requête-réponse comme celui-ci.
‫C'était très déroutant.
‫C'est pourquoi je vous montre ceci, car
‫je pense que ce sera beaucoup, beaucoup, plus facile pour
‫vous de passer au cours
‫maintenant, après avoir compris exactement comment fonctionnent les applications Express.