‫Tuteur : Dans cette conférence, les choses
‫vont commencer à devenir un peu plus avancées.
‫Et c'est parce que nous allons maintenant créer plusieurs
‫routeurs et utiliser un processus appelé montage.
‫Voyons donc comment tout cela fonctionne.
‫Maintenant, avant de faire quoi que ce soit, gardons
‫à l'esprit que le but ultime sera de séparer tout le
‫code que nous avons dans ce fichier en plusieurs fichiers.
‫Donc, ce que je veux, c'est avoir un
‫fichier qui ne contient que toutes ces routes, puis
‫je veux avoir un autre
‫fichier, qui contient les routes pour les utilisateurs.
‫Je souhaiterai également avoir un fichier qui contient les gestionnaires
‫uniquement pour les utilisateurs, puis un fichier
‫qui contiendra tous les gestionnaires pour les tournées, d'accord ?
‫Et c'est en fait ce que nous allons
‫faire dans la prochaine conférence.
‫Mais pour pouvoir le faire, nous
‫devons maintenant créer un routeur distinct pour
‫chacune de nos ressources.
‫Alors, revenons à nos routes ici et maintenant, nous pouvons dire que
‫toutes nos routes, donc ces quatre routes ici, nous pouvons dire qu'elles sont
‫toutes en quelque sorte
‫sur le même routeur, d'accord ?
‫Et le routeur, c'est cet objet d'application.
‫Mais si nous voulons séparer ces
‫routes dans différents fichiers, donc encore une fois,
‫un fichier pour ces deux
‫routes et un fichier pour ces deux routes,
‫alors la meilleure chose à faire est de créer
‫un routeur pour chacune des ressources, d'accord ?
‫Et donc, c'est comme ça qu'on va faire.
‫Ce n'est en fait pas si compliqué,
‫mais vous devrez
‫comprendre quelques concepts, d'accord ?
‫Commençons donc par dire
‫que const tourRouter est égal à express. Routeur.
‫D'accord, alors juste
‫comme ça, nous créons un nouveau routeur et l'enregistrons dans cette variable.
‫Très bien, et maintenant utilisons ce routeur
‫pour ces deux routes.
‫Nous l'utilisons donc ici à la place de l'application.
‫Bon, maintenant nous avons deux routeurs, puis route
‫et bien sûr, les routes get et
‫post sur ce routeur.
‫Maintenant, comment connecter réellement ce nouveau routeur
‫à notre application ?
‫Eh bien, nous allons l'utiliser comme middleware, d'accord ?
‫Et c'est parce que, ce nouveau routeur d'outils modulaire ici, est en
‫fait un véritable middleware, d'accord ?
‫Et donc nous
‫pouvons dire, (saisie au clavier), app. utiliser, puis l'itinéraire, mais gardons cela pour plus tard.
‫Nous pouvons donc utiliser le tourRouter sur notre application et où
‫voulons-nous utiliser le tourRouter ?
‫Eh bien,
‫nous voulons l'utiliser sur /api/version one/tours, d'accord ?
‫Encore une fois, ce tourRouter ici, est un véritable middleware.
‫Et nous voulons utiliser ce middleware pour cette route spécifique.
‫D'accord, et nous utilisons donc app. utiliser et
‫spécifier la fonction middleware, qui est ce routeur,
‫puis nous spécifions la route ainsi l'URL, pour
‫laquelle, nous voulons réellement utiliser ce middleware, d'accord ?
‫Et donc juste
‫comme ça, nous avons créé essentiellement une sous-application, d'accord ?
‫Maintenant, il y a
‫juste une chose que nous devons
‫vraiment changer ici, ce sont ces routes ici, d'accord ?
‫Alors permettez-moi de changer cela ici, puis d'expliquer pourquoi
‫il doit en être ainsi.
‫Donc ici, nous ne voulons que
‫l'itinéraire, et ici, nous ne voulons que l'identifiant, d'accord ?
‫Maintenant, pourquoi est-ce?
‫Eh bien, c'est parce que ce middleware tourRouter ne
‫fonctionne que sur cet itinéraire ici de toute façon, d'accord ?
‫Et donc une fois que nous sommes
‫dans le routeur, nous sommes déjà sur cette route.
‫Donc, à notre tourRoute, et donc ce premier itinéraire
‫que nous devions faire auparavant, nous voulons seulement
‫l'exécuter comme api/version one/tours et c'est
‫ce que cet itinéraire ici signifie maintenant, d'accord ?
‫C'est donc essentiellement la route de cette URL, d'accord ?
‫Alors, cette petite mini application, ça va ?
‫Donc, en fait, lorsque nous créons un système de routeur comme
‫celui-ci, nous disons en fait que nous créons en quelque sorte une petite
‫sous-application pour chacune de ces ressources, d'accord ?
‫C'est donc l'itinéraire de ou la mini application,
‫qui est encore une fois, à /tours, d'accord ?
‫Et puis la deuxième route, est à /id, n'est-ce pas ?
‫Et c'est parce
‫qu'avant, c'était à tours/id, donc c'était tout ça.
‫Donc comme ça, mais maintenant, cette URL ici est
‫déjà dans notre genre de route parent ici, n'est-ce pas ?
‫Disons donc que nous
‫avons maintenant une demande entrante pour /api/version one /tours/version id.
‫Ainsi, la requête entre dans la pile middleware et
‫lorsqu'elle atteint cette ligne de code ici,
‫elle correspondra à cette URL ici, n'est-ce pas ?
‫Donc, il correspondra à cette route et
‫donc ou deux fonctions middleware de routeur seront exécutées.
‫Donc, ou deux routeurs, c'est cette sous-application que nous avons créée, qui
‫à son tour a ses propres routes, d'accord ?
‫Et si la demande était pour / id, eh
‫bien, elle sera dans notre
‫mini-application, cliquez sur cette route ici, n'est-ce pas ?
‫Et enfin,
‫bien sûr, il exécutera l'un de ces handles
‫ici, en fonction de la méthode utilisée.
‫J'espère donc que cela a du sens.
‫Et donc allons-y maintenant et faisons
‫de même pour tous les utilisateurs, d'accord ?
‫Donc, je vais aller de l'avant et créer un autre
‫routeur ici, (saisie au clavier) appelé userRouter, puis comme
‫avant, c'est express. Routeur
‫pas comme ça, ouais.
‫D'accord, alors utilisez un routeur,
‫puis nous devons faire le même processus qu'ici.
‫Et au fait, c'est ce qu'on appelle le montage du routeur, d'accord ?
‫Donc, monter un nouveau routeur sur un itinéraire, en gros, d'accord ?
‫Nous avons donc maintenant des utilisateurs et ici un utilisateur.
‫Et en fait, le montage des
‫routeurs doit venir après toutes ces définitions ou
‫au moins après que nous ayons déclaré une variable, n'est-ce pas ?
‫Nous ne pouvons donc
‫pas utiliser les routeurs avant de les déclarer.
‫D'accord, maintenant tout ce que nous avons à faire
‫est d'aller de l'avant et de changer également les itinéraires ici.
‫Et donc, comme avant, s'il y a
‫maintenant une demande pour /api/version one/users/id, la demande entrera dans
‫la pile middleware et quand elle
‫atteint ce middleware ici, elle
‫exécutera le routeur
‫utilisateur, car cette route ici est correspond, d'accord?
‫Et alors, il entre dans
‫le routeur de l'utilisateur
‫et encore une fois, comme avant, cette erreur est la route essentiellement
‫dans notre sous-application, et ici, c'est l'intégralité de l'URL/de l'identifiant, d'accord ?
‫Cela a-t-il du sens?
‫Donc avant
‫de continuer, testons réellement si cela fonctionne toujours.
‫Alors, obtenons toutes les visites ici et en effet, c'est le cas.
‫Donc, tout fonctionne toujours de la même manière avec les utilisateurs
‫et cela fonctionne toujours aussi.
‫Nous avons donc effectué toutes ces modifications et décodé
‫les travaux, ce qui signifie que nos deux nouveaux routeurs sont correctement montés.
‫Très bien, et avec cela, nous sommes prêts à séparer ou
‫à séparer les routeurs maintenant dans différents fichiers.
‫Et cela, nous le ferons bien dans la prochaine conférence.