‫Narrateur : Améliorons maintenant l'implémentation
‫des routes imbriquées que nous avons codées dans la dernière leçon.
‫Et pour
‫cela, nous allons utiliser une fonction express avancée spéciale.
‫Donc, comme vous vous en
‫souvenez, dans la dernière vidéo, nous avons implémenté un simple
‫itinéraire de poste imbriqué, donc juste celui-ci ici.
‫Droit. Cela signifie donc que l'itinéraire d'examen
‫est en quelque sorte dans l'itinéraire de la tournée.
‫Et encore, parce que les critiques appartiennent en quelque sorte aux tournées.
‫Droit?
‫C'est donc une chose très courante à faire dans la conception d'Api.
‫Maintenant, le problème avec cette implémentation est qu'elle est,
‫bien sûr, un peu brouillonne.
‫Et c'est parce que nous avons mis un itinéraire pour créer un avis
‫dans le routeur de tournée.
‫Tout simplement parce qu'un itinéraire commence par un slash tour.
‫C'est donc un peu
‫déroutant, et ce qui est
‫également déroutant, c'est que nous avons quelque chose de très
‫similaire à cela ici, également dans notre itinéraire d'examen.
‫Donc, fondamentalement ceci ici.
‫Ainsi, lorsque nous créons une nouvelle revue sans la route imbriquée,
‫ce morceau de code ici est en fait exactement le même
‫que celui-ci. Droit?
‫Et donc, en plus d'être un peu déroutant,
‫nous avons également du code en double que nous devrions conserver
‫à deux endroits distincts au cas où nous voudrions changer quoi que ce soit.
‫Et encore une fois, c'est une très mauvaise pratique.
‫Et donc corrigeons maintenant ce problème à l'aide d'une fonctionnalité
‫express avancée appelée mergeParams.
‫Alors tout d'abord supprimons ici ce
‫code qui n'appartient pas vraiment au routeur de tournée.
‫Ensuite, nous importerons réellement le routeur d'examen dans
‫ce routeur de tournée.
‫D'accord?
‫Donc, en ce moment, nous importons le contrôleur de
‫révision, mais en fait, nous voulons le routeur de révision.
‫Alors débarrassons-nous de celui-ci,
‫et en fait je vais le supprimer complètement.
‫Et
‫maintenant, le
‫routeur d'examen.
‫Et bien.
‫Alors, prenons ce code et mettons-le ici en haut, juste pour
‫que nous
‫voyions ce que nous faisons, car
‫nous allons en fait créer un
‫nouveau code ici en haut.
‫Et donc ce que nous allons
‫faire ici,
‫c'est dire routeur. utilisation.
‫Et donc, nous dirons essentiellement que ce routeur de
‫tournée doit utiliser le routeur
‫de révision au cas où il rencontrerait un itinéraire comme celui-ci.
‫Et
‫revoir les itinéraires.
‫Est-ce que je l'ai appelé routes ou routeur ?
‫Devrait être appelé routeur.
‫D'accord?
‫Donc, gardez à l'esprit qu'un routeur lui-même
‫n'est en réalité qu'un middleware.
‫Et donc nous pouvons utiliser la méthode use dessus,
‫puis dire que pour cet itinéraire spécifique ici,
‫nous voulons utiliser le routeur de révision à la place.
‫D'accord?
‫Et c'est donc à nouveau le montage d'un routeur.
‫Donc, si vous jetez un œil à cela, ici
‫dans l'application. js, c'est
‫en fait exactement ce que nous avons fait.
‫Alors nous l'avons fait. utiliser,
‫puis l'URL, puis
‫le routeur.
‫Et donc ici, ce que
‫nous faisons est en fait exactement la même chose.
‫C'est donc le routeur de tournée, et donc nous disons
‫bien chaque fois que vous trouvez une URL comme
‫celle-ci, eh bien, utilisez simplement le routeur d'examen.
‫Et donc, en ce moment, quand nous avons une URL comme celle-ci,
‫elle commencera par entrer dans le routeur de tournée ici, d'accord, parce que, encore
‫une fois, cela commence par des visites à barre oblique,
‫d'accord, donc
‫en gros, elle est redirigée vers le routeur de
‫tournée, puis quand elle atteint le routeur
‫de tournée, alors il correspondra à
‫cette URL ici, puis il sera à nouveau redirigé vers le routeur de révision.
‫Et comme ça, nous avons
‫le routeur de tournée et le routeur
‫d'examen bien séparés et découplés l'un de l'autre.
‫Mais maintenant, il manque encore une pièce
‫car pour le moment, ce routeur
‫d'examen n'a pas accès à ce paramètre d'identifiant de tournée, d'accord.
‫Et maintenant, nous devons permettre
‫au routeur d'examen d'accéder également à ce paramètre ici.
‫Passons maintenant au routeur d'examen, d'accord.
‫Et c'est donc là qu'intervient le
‫mergeParams médical que j'ai évoqué
‫au début.
‫Alors ici, dans l'express. router, nous pouvons spécifier
‫certaines options, et ici tout ce que
‫nous avons à faire est de définir mergeParams
‫sur true.
‫Et c'est tout.
‫Mais pourquoi en avons-nous vraiment besoin ici ?
‫Eh bien, c'est parce
‫que, par défaut, chaque routeur
‫n'a accès qu'aux paramètres de ses routes spécifiques, n'est-ce pas.
‫Mais ici, dans cet itinéraire, donc dans cette URL pour cet article, il
‫n'y a bien sûr pas d'identifiant de tournée.
‫Mais, nous voulons toujours avoir accès à l'identifiant
‫de tournée qui se trouvait dans cet autre routeur, n'est-ce pas.
‫Alors ça ici.
‫Et donc, afin d'avoir accès à ce
‫paramètre dans cet
‫autre routeur, nous devons fusionner physiquement les paramètres, d'accord.
‫Et c'est donc ce que fait mergeParams, défini sur true.
‫Et maintenant, peu importe si nous obtenons un itinéraire comme celui-ci,
‫alors copions-le ici. Encore une fois, il
‫est plus facile de le visualiser avec un exemple.
‫Et encore une fois, peu importe si nous obtenons un
‫itinéraire comme celui-ci,
‫ou un itinéraire comme celui-ci, tout se terminera maintenant dans ce gestionnaire ici, d'accord.
‫Donc à la fin essentiellement à cette fonction de gestionnaire.
‫Et encore une fois, cela fonctionne car
‫toutes les routes commençant par ce
‫type de modèle ici seront redirigées vers ce
‫routeur exactement dans cette ligne de code ici, d'accord.
‫Nous avons donc redirigé vers le routeur d'examen
‫ici et donc là-bas, il correspondra à cet itinéraire exact,
‫d'accord.
‫Et grâce aux paramètres
‫de fusion, nous obtenons alors accès à
‫cet identifiant qui provient en fait de l'autre routeur avant.
‫Super.
‫Alors faisons juste un peu
‫de nettoyage ici, débarrassons-nous
‫en fait de
‫ceci,
‫de ceci ici, et essayons rapidement maintenant.
‫Je vais donc créer une nouvelle critique ici et
‫essayons un autre outil cette fois.
‫Donc le vagabond de la ville.
‫Et tout ce que nous
‫devons faire est de changer cet identifiant ici même dans l'URL, à droite.
‫Donc, la note va
‫être
‫de trois, et ça allait.
‫Très bien, et donc cet examen sera toujours fait
‫avec Jonas, donc à partir de ce
‫compte, d'accord,
‫car c'est toujours celui qui est connecté en ce moment, d'accord.
‫Alors, envoyons cela,
‫et en effet, nous obtenons ici la visite que nous venons de spécifier,
‫et toujours le même utilisateur.
‫C'est donc encore une fois juste pour vous assurer de vérifier la tournée
‫pour voir si elle obtient maintenant cette
‫critique et oui, elle l'a fait.
‫Et donc, cette astuce des paramètres de fusion, que
‫nous venons d'implémenter, fonctionne très
‫bien et comme prévu.
‫Maintenant, pour voir cela en action, encore mieux,
‫nous allons adapter la fonction henry
‫pour obtenir toutes les critiques d'une tournée spécifique directement dans
‫la prochaine vidéo.