‫Instructeur : Donc, après toutes les discussions sur le
‫middleware, allons maintenant de
‫l'avant et créons nos propres fonctions de middleware.
‫Et encore une fois, rappelez-vous
‫que nous utilisions déjà un middleware auparavant.
‫Jetons donc un œil à cela.
‫Et, quelque part ici.
‫Et donc, vous voyez que pour
‫utiliser le middleware, nous avons utilisé l'utilisation de points d'application, d'accord ?
‫Ainsi, la méthode d'utilisation est celle que nous utilisons afin,
‫oui, d'utiliser réellement le middleware.
‫Alors, ajoutez un middleware à notre pile de middleware, d'accord ?
‫Donc, ce json express dot ici appelant cette méthode json renvoie
‫essentiellement une fonction, d'accord ?
‫Et cette fonction est ensuite ajoutée à la pile middleware.
‫Et ainsi, de la
‫même manière, nous pouvons créer notre propre fonction middleware.
‫Alors, faisons-le maintenant.
‫Et donc, bien sûr, nous devons toujours utiliser l'utilisation des points d'application.
‫D'accord, et maintenant, ici, tout ce que nous avons à
‫faire est de cheminer dans notre fonction que nous voulons ajouter à la pile middleware.
‫Alors, rappelez-vous de la dernière vidéo que,
‫bien sûr, dans chaque fonction
‫middleware, nous avons accès à la demande et à la réponse, d'accord ?
‫Mais aussi, nous avons la fonction suivante.
‫Et donc, juste comme ça, nous éditons comme troisième
‫argument de cette fonction middleware, d'accord ?
‫Et comme ça, express sait alors
‫que nous définissons en fait un middleware ici.
‫Bien.
‫Maintenant, comme avant,
‫en fait, nous aurions pu appeler cet argument
‫ici autrement, comme X ou N, ou, cela n'a pas vraiment d'importance.
‫Ce qui compte, c'est
‫que c'est le troisième argument de cette fonction.
‫Donc, express passe essentiellement la fonction
‫suivante comme troisième argument dans cette fonction middleware.
‫Et on peut alors l'appeler comme on veut.
‫Mais encore une fois, la prochaine est vraiment la convention
‫dans express, et afin d'éviter
‫toute confusion, nous utilisons toujours ce nom, d'accord ?
‫Et de même pour la demande
‫et la réponse, comme je l'ai mentionné précédemment, nous pourrions les appeler autrement.
‫Mais la convention est de les appeler ainsi.
‫Quoi qu'il en soit, enregistrons simplement quelque chose dans
‫la console, ici dans cette fonction
‫middleware, juste pour que nous ayons du code à exécuter à
‫chaque fois qu'il y a une nouvelle demande.
‫Dites
‫bonjour du middleware.
‫Et ajoutez des emoji ici, encore une fois, pour le faire ressortir un peu.
‫J'aime beaucoup ça.
‫Et que se passe-t-il ici ?
‫Ah, d'accord.
‫C'est donc le code que nous voulons exécuter ici.
‫Et maintenant, tout comme nous en avons parlé dans
‫la dernière vidéo, nous devons en fait appeler la fonction suivante, d'accord ?
‫Et si nous n'appelions pas
‫ensuite ici, eh bien, le cycle
‫demande/réponse serait vraiment bloqué à ce stade.
‫Nous ne serions pas
‫en mesure d'avancer et nous ne renverrions jamais de réponse au client.
‫Je ne saurais donc trop insister sur l'importance
‫de ne jamais oublier d'utiliser Next dans tous vos middleware.
‫D'accord, et c'est aussi simple que ça.
‫Tout ce que nous avons à faire est de spécifier ensuite.
‫Donc, cet argument ici.
‫Et puis appelez cette fonction comme ceci.
‫D'accord.
‫Et avec cela, nous sommes en fait prêts à le tester.
‫Et tout ce que nous
‫avons à faire est d'envoyer une simple requête à notre API.
‫Voici donc l'API.
‫Fermons celui-ci ici.
‫Et donc, cela n'a pas vraiment d'importance,
‫car cela, bien sûr, s'applique à chaque demande.
‫Alors, revenons en arrière.
‫Et effectivement, nous avons le bonjour
‫du middleware connecté à notre console, d'accord ?
‫Tellement bon.
‫Et je voulais aborder rapidement ce que je viens
‫de dire avant, à savoir
‫que ce middleware ici s'applique à chaque demande, d'accord ?
‫Et c'est parce que nous n'avons spécifié aucun itinéraire.
‫Alors, rappelez-vous qu'avant de dire que tous les gestionnaires de routes
‫ici sont en fait une sorte de middleware eux-mêmes.
‫Ce sont simplement des
‫fonctions middleware qui ne s'appliquent qu'à une certaine URL.
‫Donc un certain itinéraire, d'accord.
‫Mais ces fonctions middleware plus simples que
‫nous définissons ici,
‫eh bien, elles vont s'appliquer à chaque requête.
‫Du moins, si le gestionnaire de
‫route vient avant ce middleware.
‫Alors laissez-moi vous montrer quelque chose.
‫Et je vais le couper à partir
‫d'ici et maintenant le mettre ici
‫après ce gestionnaire de route.
‫Alors, que pensez-vous qu'il va
‫se passer maintenant lorsque j'appellerai cette route ?
‫Voyons donc ce qui se passe.
‫Donc cet itinéraire exact, donc celui que je viens de vous montrer,
‫permettez-moi d'envoyer la demande à cela.
‫Et maintenant, revenons en arrière et maintenant nous n'avons plus
‫le bonjour du middleware.
‫Alors, pourquoi ?
‫Eh bien, simplement parce que ce middleware,
‫donc ce gestionnaire de
‫route ici, vient avant cette fonction middleware que nous avons ici.
‫Et ce gestionnaire de route, qui dans
‫ce cas, obtient toutes les tournées, termine en fait le cycle de réponse à la demande.
‫Jetons donc un œil à cela.
‫Nous avons donc obtenu toutes les visites.
‫Alors, où est-ce ?
‫Oui, voici donc la fonction et en envoyant un résultat avec
‫res dot json, nous terminons en
‫fait le cycle de réponse de la demande.
‫Et donc le middleware suivant dans
‫la pile, qui dans ce
‫cas, est celui-ci, donc notre custom ne sera pas appelé.
‫Encore une fois, parce que le cycle est déjà terminé, d'accord.
‫Assurez-vous donc de comprendre que cette commande
‫compte vraiment beaucoup en express, d'accord.
‫Il est fondamental de comprendre
‫que c'est ainsi que fonctionnent les applications express, d'accord.
‫Donc, afin de tester cela, essayons de
‫voir ce qui se passe
‫lorsque nous faisons une requête à cette route.
‫Donc, pour obtenir la tournée, mettez à jour la tournée ou supprimez la tournée.
‫Faisons donc celui-ci, envoyons la demande ici, et
‫revenons en arrière et maintenant nous avons le
‫bonjour du middleware.
‫C'est donc en fait ce à quoi nous nous attendions, n'est-ce pas ?
‫C'est donc bien sûr parce que ce middleware ici
‫est maintenant avant le gestionnaire de route.
‫Et c'est donc, bien sûr, une partie de la pile
‫middleware qui est exécutée avant la fin du cycle de réponse à la demande.
‫D'accord, ça a du sens ?
‫Donc, revenons en arrière et nous définissons
‫donc généralement ce type de middleware
‫global ici avant tous nos gestionnaires de routes.
‫D'accord, il s'agit donc d'une fonction
‫middleware très simple que nous venons de définir pour exécuter du code.
‫Mais faisons en fait un autre.
‫Et bien sûr, nous
‫pouvons avoir autant de fonctions middleware que nous le souhaitons.
‫Et cette fois, nous
‫voulons réellement manipuler l'objet de requête.
‫Ainsi, la signature ici est toujours la
‫même, toujours la demande, la réponse et la suivante.
‫Et maintenant, manipulons réellement la demande.
‫Tout ce que nous
‫voulons faire dans ce cas, c'est d'ajouter l'heure actuelle à la demande.
‫Nous pouvons donc simplement définir
‫une propriété sur l'objet de requête appelée request time.
‫Et puis définissez-le sur une nouvelle
‫date,
‫ce qui se traduit essentiellement par maintenant.
‫Et puis nous pouvons utiliser une fonction de date très
‫pratique, qui est appelée en chaîne ISO, qui
‫la convertira ensuite en une chaîne
‫agréable et lisible pour nous.
‫Donc, supposons que nous ayons un gestionnaire de route
‫qui a vraiment besoin d'informations sur
‫le moment exact où la demande se produit.
‫Et donc la solution très simple consiste simplement
‫à ajouter quelque chose comme ça à une requête en utilisant un middleware.
‫Bien?
‫Maintenant, n'oubliez pas, bien
‫sûr, d'appeler le prochain middleware dans la pile, d'accord.
‫Donc en ce moment, nous avons une demande, du temps sur toutes les demandes.
‫Nous pouvons donc maintenant utiliser un gestionnaire de route
‫ici, par exemple (marmonne) pour que toutes les visites soient
‫simplement enregistrées pour nous sur la console.
‫Donc, le journal des points de la console et son heure de demande.
‫D'accord, ou nous pourrions même envoyer ceci dans la réponse également.
‫Laissez-moi tester ça.
‫Et appelons simplement celui-ci
‫demandé au moment de la demande de point et req.
‫C'est celui-là.
‫Et donc, ouais, allons de l'avant et trouvons celui-ci.
‫Notre middleware est donc correct, n'est-ce pas ?
‫Ouais, donc on appelle ensuite, quand on a fini, et
‫donc testons ça maintenant.
‫N'oubliez pas que c'est activé pour toutes les visites.
‫Et quand nous y retournons maintenant, ou quand nous remontons,
‫eh bien, cela devrait en fait être ici.
‫Alors, qu'est-ce qui ne va pas ici ?
‫Vous voyez
‫qu'ici, nous venons d'enregistrer une fonction
‫et oui, bien sûr, nous n'avons pas appelé les deux chaînes ISO.
‫C'est donc une méthode que nous devons appeler.
‫Alors faites une sauvegarde, réessayez.
‫Et maintenant, nous avons demandé à la date d'aujourd'hui.
‫Tellement parfait.
‫Cela vient de notre middleware.
‫Donc simplement parce que nous avons ajouté cette propriété à notre demande.
‫Super.
‫J'espère donc qu'avec cela, vous avez fait un grand pas
‫en avant afin de vraiment comprendre comment fonctionne l'application Node, comment fonctionne
‫le middleware, comment
‫fonctionne l'ensemble du cycle de réponse aux demandes, car
‫cela va vraiment faire toute la
‫différence lorsque vous écrivez vos propres candidatures.