Eh bien revenir dans cette leçon, nous allons continuer à travailler sur yo camp, mais nous n'allons pas ajouter de nouvelles fonctionnalités ou fonctionnalités.
Nous allons refactoriser le code existant.
J'ai donc parlé de refactoring des itinéraires et de notre application J.S. Pour une longue période et il est juste devenu de plus en plus hors de contrôle et nous avons assez de code ici qu'il justifie refactoring il et nous allons nous concentrer sur les routes.
Permettez-moi de souligner les différents groupes de routes que nous avons en ce moment.
Nous avons nos routes d'authentification d'environ 40 lignes quelque chose ici et nous avons un commentaire des itinéraires là-bas.
Et puis nous avons aussi nos gouttes camping qui vont encore 40 lignes ou plus ici.
Ce sont donc les trois principaux groupes de routes que nous avons.
Et nous allons les diviser en trois fichiers différents et puis exiger tous d'eux donc aura un besoin d'un quai qui ressemble à var comment routes égales requièrent et nous aurons des commentaires de barre de slash d'un itinéraire.
Donc nous devrons faire ce travail.
Il ne fonctionnera pas en ce moment et nous ferons la même chose pour le camping et pour nos gorges.
Et ce n'est que la première partie.
Diviser les choses en différents fichiers et puis je vais vous montrer une autre façon, nous pouvons assécher nos itinéraires encore plus et rendre les choses un peu plus propres à l'aide du routeur Express.
Donc nous allons y arriver, mais je vais commencer par faire un répertoire d'itinéraires et je travaille à l'intérieur de 7 à ce stade parce que nous faisons des changements substantiels à la structure de l'application et les répertoires.
Il serait donc assez déroutant si je n'ai pas fait une nouvelle version.
Nous allons faire un annuaire appelé pour les itinéraires et puis nous allons faire trois chemins différents itinéraires slash terrains de camping J routes américaines slash commentaires pour nous et les itinéraires jusqu'à slash itinéraires et nous pouvons soit appeler cela J.S. Ou nous pourrions appeler l'index qui est un autre que vous verrez souvent pour les itinéraires tout usage qui ne sont pas liés à un modèle particulier.
Et j'irai avec ça pour le moment.
Index Oui.
Donc ouvrons ceux-ci et si nous faisons C9 sur un répertoire, il sera ouvert tous les trois d'entre eux apparaissent.
Et puis nous pouvons simplement cliquer sur ceux que nous voulons.
Nous avons donc ce petit sous-arbre que nous avons privilégié.
Commençons par travailler avec des terrains de camping qui s'ouvrent et je vais juste copier tous les itinéraires de terrains de camping d'ici.
Donc ça commence juste ici et ça descend jusqu'à ce que nos routes de commentaire soient là.
Et nous allons coller cela dans les terrains de camping et il ne va pas simplement à travailler automatiquement de la boîte.
Nous devrons changer certaines choses.
Mais commençons par diviser les fichiers.
Alors je vais continuer à travailler avec les commentaires et nous avons seulement 2 commentaires ou non.
Donc je vais prendre les deux de ceux-ci les mettre dans ce fichier.
Enfin, nous allons ouvrir l'index oui et nous ajouterons l'autre itinéraire afin que nous ayons notre itinéraire.
Et puis les itinéraires d'authentification aussi bien vers le bas ici et je vais prendre cela est connecté avec nous et nous allons refactoring que séparément, mais qui appartient à l'authentification routes parce que c'est là que nous l'utilisons.
Et c'est aussi une dépendance des itinéraires de commentaire.
Oui, nous utilisons est connecté ici aussi.
Alors copions tout ça.
Ainsi est enregistré dans tout le chemin jusqu'à toutes les routes, y compris l'itinéraire.
Et maintenant, nous avons vraiment nettoyé le fichier d'accès.
Collez-le dans l'index oui et enregistrez.
Et nous recevons des erreurs partout parce que nos fichiers ne savent pas à quoi l'application fait référence.
Comme vous pouvez le voir, c'est l'un des problèmes rencontrés.
Mais nous ne sommes pas en fait de déclarer une application variable comme nous le ferions dans le passé où nous faisons notre application est égal Express.
Nous allons faire quelque chose de légèrement différent.
Nous allons utiliser le routeur exprès et la machine avec qui ressemble à commencer.
Nous allons exiger expressive ici pour exprimer Express requiert express et puis nous allons écrire var routeur est égal à exprimer routeur point et puis nous allons ajouter toutes les routes sur le routeur plutôt que l'app.
Et nous allons faire cela d'abord juste pour vous montrer et puis je vais expliquer pourquoi cela vaut la peine d'être fait.
Nous allons donc faire cela.
Et puis bien sûr, nous devons exporter quelque chose à partir de ce fichier et tout ce que nous avons besoin d'exporter est routeur ainsi module que les exportations sont égaux routeur.
Donc, nous avons créé cette variable de routeur égale à express point routeur essentiellement une nouvelle instance du routeur Express et ensuite nous ajoutons toutes les routes au routeur ne plus les ajouter à l'application elle-même.
Mais à ce routeur et puis nous sommes de retour ou d'exportation du routeur à la toute fin.
Et ce sont des terrains de camping qui oui.
Et si je vais à mon app oui je vais commencer par exiger tous mes fichiers routeur.
Donc je vais le faire séparément des autres dépendances de var comment routes et puis nous aurons des routes de camping Eco exigent des routes slash point slash terrains de camping.
Et puis nous avons aussi Auth. Et fera tout au long des égaux et tous regroupés joliment.
C'est comme ça.
OK nécessitent un slash point slash index et nous pouvons appeler cet index Raf si vous le souhaitez.
OK, nous allons enregistrer cela.
Nous importons ou demandons maintenant ces trois fichiers.
Mais ce n'est pas suffisant pour nous de les utiliser pour le moment.
Nous avons exigé les fichiers et un seul d'entre eux par la manière est effectivement l'exportation de quoi que ce soit.
Les commentaires et l'index js sont toujours problématiques.
Mais si nous retournons à Apter Oui, nous devons écrire une application que j'utilise.
Donc, je vais juste faire cela ici-bas et je vais vous montrer ce qu'il ressemble d'abord après que j'utilise.
Et puis nous devons lui donner le nom de nos itinéraires que nous avions besoin.
Donc comment itinéraires itinéraires de camping et les itinéraires d'index.
Nous allons donc faire cela.
Nous allons donc commencer par les itinéraires d'index, puis une autre mise à jour utilisera les routes de commentaires.
Et puis un autre après que c'est camping draps et qui dit que nous sommes aptes à utiliser ces trois fichiers de route que nous avons exigé à l'heure actuelle seulement camping J nous réellement mis en place correctement.
Donc, nous allons terminer avec les autres commentaires J nous et nous allons changer tous les points dot Router CB point et puis au fond, nous faisons module que les exportations sont égaux routeur et enregistrer, mais nous avons encore quelques problèmes.
Vous pouvez voir est connecté.
Nous devons définir ce terrain de camping n'est pas défini.
Et c'est aussi se plaindre que le terrain de camping n'est pas défini.
Nous devons donc nous assurer que nous ajoutons également les modèles appropriés.
Donc, ici, nous allons faire un autre loin et ne pas commencer avec des terrains de camping égaux exigent.
Et nous avons besoin d'obtenir le chemin du fichier correct.
Donc en ce moment nous sommes à l'intérieur du répertoire des routes et nous devons aller à l'intérieur du répertoire de modèles camping.
Oui.
Donc, nous devons faire dot dot slash modèles slash terrain de camping et puis nous allons également importer des commentaires qui doit être modèle slash commentaire.
Ce sont les deux modèles que nous voulons exiger ici et sauver, mais nous avons encore ce problème de est connecté et de commencer Je vais juste copier le code est connecté.
Donc, c'est au bas de celui-ci.
Alors copiez-le dans les deux endroits, donc nous le garderons dans nos itinéraires d'index.
Nous allons également l'ajouter à notre itinéraire de commentaires et de les mettre au bas pour l'instant et enregistrer.
Et maintenant que l'air s'éloigne et que nous sommes libres d'air, nous arrivons à aller dans ce fichier.
Maintenant, il s'agit de notre index J.S. Où il ya un peu plus à s'inquiéter parce que nous utilisons un autre code qui va vomir certains problèmes.
Donc, nous devons commencer par notre code qui exige express et puis il crée le routeur Express il suffit de copier ici.
Mettre en et puis nous allons changer toutes ces applications pour le routeur ne get routed up postes comme ça et enregistrer.
Nous avons un problème.
Il se plaint que le passeport n'est pas défini et c'est parce qu'il n'est pas défini.
Donc, tout ce que nous devons faire est un passeport VAR égaux exigent passeport.
Et nous sommes presque là, mais nous avons aussi un problème où l'utilisateur n'est pas défini.
Donc, nous avons besoin de définir l'utilisateur de sorte que nos utilisateurs égaux exigent dot dot slash modèles slash utilisateur.
Donc, vous avez probablement remarqué que, afin de nous permettre de briser les choses dans les fichiers distincts et de garder notre application juste agréable et propre.
Cela signifie que nous devons exiger des choses un peu plus souvent et c'est le seul inconvénient.
C'est un peu plus de code à exiger des choses, mais à long terme, il est beaucoup plus logique de briser un code comme ça.
Maintenir les choses organisées ont un certain ordre et la structure de notre application et cela pourrait signifier une ligne supplémentaire ou deux ici, mais il conserve son fichier Applecross agréable et court.
OK alors si nous essayons de tester cela en ce moment, nous avons nos trois routes que nous exigeons tous ces fichiers sont maintenant mis en place où ils ont les dépendances importantes nécessaires.
Les modèles expriment un routeur exprès et alors nous exportons au fond de chacun d'eux bien que nous ne le faisons pas sur celui-ci que nous devons faire un index tel que le module mais les exportations égalent le routeur Maintenant si nous essayons et commençons le App.
Voyons si nous avons des erreurs.
Ça à l'air bon.
Testez-le.
Nous allons donc aller sur le chemin racine pour démarrer cette route qui fonctionne.
Sentez les terrains de camping.
Nous avons un problème ici, c'est que nous n'avons pas défini le terrain de camping au lieu de la route des terrains de camping.
Donc, nous devons ouvrir ce terrain de camping J.S. Et juste ajouter dans nos terrains de camping VAR exigent dot dot slash modèles slash terrain de camping comme nous l'avons fait dans les autres fichiers.
Assurez-vous qu'il n'y a pas d'autres erreurs ici.
Ça à l'air bon.
Redémarrez le serveur et essayez à nouveau.
Maintenant, nous devons partir.
Nous voyons donc la page de présentation.
Retournons.
Essayez de vous connecter.
Génial.
Severus mot de passe et tout fonctionne très bien.
Qui est genial.
Il a été en fait un changement plus important que nous pouvons faire pour sécher ou code un peu et il a à voir avec cette ligne ici sont ces trois lignes en fait ce que nous faisons après que vous utilisez les itinéraires d'index itinéraires de camping et commenter les itinéraires que nous pouvons Do est de raccourcir les déclarations d'itinéraire.
Prenons un exemple de routes de commentaires en commun Jay.
Oui.
Les deux itinéraires que nous avons tous commencent avec les terrains de camping slash ID slash commentaires campgrounds slash ID slash commentaires et puis nous avons Slash savait sur la fin de l'un d'entre eux ou dans la page de la sécheresse du camping si j'ouvre que vous pouvez voir qu'ils commencent tous Avec les terrains de camping Slash et nous pouvons réellement réduire cette duplication lorsque nous les demandons dans notre application.
Oui.
Laissons donc commencer par le terrain de camping.
Je peux dire que tous les itinéraires de terrains de camping devraient commencer avec les terrains de camping de Slash et nous prendrons tous ces itinéraires de G-S de terrain de camping qui weve pour trouver ces trajets ici et appellent le terrain de camping slash devant eux.
Donc, si allaient faire ce changement, nous devons ensuite aller à un terrain de camping fichier JS et se débarrasser de tous les terrains de camping slash.
Donc, l'indice maintenant pour montrer tous les terrains de camping est juste slash.
La création est juste la barre de notre nouveau est juste slash Nouveau notre spectacle.
Son juste slash ID et c'est tout ce que nous avons.
Donc, nous allons économiser et ce que cela fait encore, c'est qu'il prend des routes de camping tous ces itinéraires ont été définis dans ce fichier et il ajoute slash terrains de camping en face d'eux.
Donc, il nous aide à nettoyer le code et nous pouvons faire la même chose bien que pour les itinéraires d'index il n'y a rien en commun que nous voulons rester devant eux afin que nous puissions simplement laisser comme il est ou nous pouvons simplement dire qu'ils commencent tous Avec Slash si nous voulons les avoir tous correspondent à ce modèle où nous fournissons la chaîne d'abord et nous allons juste tester que le démarrage du serveur à rafraîchir sur la page des terrains de camping qui fonctionne maintenant même si l'itinéraire lui-même nous allons au camping.
Oui, l'itinéraire de l'index est juste une barre oblique.
C'est en fait un terrain de camping slash en raison de cette ligne ici.
Alors commenter les itinéraires.
C'est un peu plus compliqué parce qu'ils commencent tous par Slash terrain de camping slash colon ID slash commentaires et puis nous pouvons aller au commentaire commentaire de fichier J nous routes et de changer tous ces afin que ce n'est que la barre oblique nouvelle.
Et c'est juste un slash.
Nous avons donc raccourci beaucoup les itinéraires et nous avons regroupé les choses dans ces idées pour que tous les itinéraires de camping commencent avec les terrains de camping Slash et nous pouvons écrire des déclarations d'itinéraire plus courtes.
Et c'est particulièrement vrai avec les commentaires où nous n'avons pas à fournir ce long préfixe ici, mais il ya un problème.
Si nous économisons nous assurer que nous enregistrons le dossier de commentaire et revenons en arrière et relancons et rafraîchissons et nous allons à un des itinéraires de commentaire comme ajoutez un nouveau commentaire.
D'abord, nous allons devoir ouvrir une session bien sûr.
Alors je vais me connecter à un Severus et essayer de nouveau.
Et maintenant j'essaie d'ajouter un commentaire.
Nous avons un problème et il est difficile de dire quel est le problème de cette erreur qui est toujours frustrant, mais il dit ne peut pas lire un nom de propriété de NULL et il pointe vers cette ligne ici.
Nom du terrain de camping.
Donc, à partir de cette erreur, nous pouvons recueillir que le camping est nul, ce qui signifie qu'il ne trouve pas notre terrain de camping dans la base de données, car au lieu de cette route commentaire lorsque nous créons un nouveau commentaire la première chose qu'il fait est de trouver un camping par l'ID.
Et ce qui se passe, c'est que notre carte d'identité n'est pas trouvée.
Nous pouvons donc prouver qu'en faisant un ID de paramètre de demande de journal de confiance et de ne pas démarrer le serveur.
Et cela fonctionnait très bien jusqu'à ce que nous avons déplacé ces routes et nous avons utilisé ce routeur express comme celui-ci où nous avons précisé que tous les commentaires des itinéraires commencent par ceci où nous avons ajouté Colan ID mais si nous l'essayons et nous sommes frais et nous regardons ici avant Cette longue flèche est souligné que nous pouvons voir que non a été imprimé.
Donc, ce n'est pas de trouver l'ID.
Ce qui se passe, c'est que notre I.D. Ou colon I.D. Route n'est pas en train de parcourir nos routes de commentaires.
Et il ya un correctif très facile lorsque nous utilisons le routeur Express dans ce fichier que nous passons dans une option au lieu d'un objet.
Fusionner les programmes.
Vrai.
Et ce sera ensuite fusionner le Paramo du terrain de camping et les commentaires ensemble de sorte que dans les routes de commentaires, nous sommes en mesure d'accéder à ce Kolin ID que nous avons défini.
Alors redémarrez maintenant le noeud Aptera Oui.
Si nous sommes frais en ce moment, nous devons revenir arrière terrain de camping rafraîchir.
Je vais devoir ouvrir une session en tant que mot de passe de Severus puis allons essayer et ajouter un commentaire et vous pouvez voir qu'il fonctionne maintenant très bien.
Et nous trouvons cette identification et puis nous trouvons le terrain de camping correct.
Nous n'avons donc pas de problème.
D'ACCORD.
Nous avons réussi à refactoriser les routes.
La dernière chose que nous pourrions vraiment mettre l'accent sur le nettoyage de certains autres code afin que nous puissions aller dans notre fichier de commentaires par exemple.
Et nous n'avons plus besoin de commenter ici les itinéraires.
Mais si nous voulions aller dans et ajouter les points-virgules et aussi juste ajouter un petit message avant chaque itinéraire.
Donc, ce sont les commentaires nouveaux et puis ce sont les commentaires créer et nous allons enregistrer veiller à ce que tout est formaté joliment et se débarrasser de cela.
Nous avons encore ce qui est connecté.
Je vais juste ajouter un message ici middleware que nous allons refactoring et de passer à son propre fichier qui exigera alors Au lieu du fichier de commentaires et notre index japes fichier, car nous l'avons dans les deux endroits.
Assurons-nous d'avoir quelques commentaires ici.
Voilà donc l'itinéraire.
Il s'agit de notre route de formulaire de registre qui gère la route logique d'inscription.
Il s'agit de notre chemin de fer et de formulaire.
Cela gère le journal et la logique des formulaires et effectue effectivement la connexion.
Et c'est la route de déconnexion.
Et puis nous avons notre middleware ici.
D'accord.
Et puis enfin aller au camping.
Oui, nous avons notre itinéraire d'index.
Notre itinéraire de création et notre nouvelle route et notre spectacle.
Génial.
Et effectivement oui, voyons s'il y a autre chose que nous pouvons vraiment nettoyer ici.
Allons-y et ajoutez un commentaire ici.
Avons-nous raison d'exiger des itinéraires et autrement pour bien aller.
Nous avons donc changé beaucoup de choses en ce qui concerne les fichiers et les répertoires, mais notre logique est exactement la même.
Vraiment le plus grand changement en dehors de déplacer les choses dans différents fichiers a été montrant cette utilisation du routeur Express où nous pouvons exiger des fichiers d'itinéraire et dans notre cas, nos fichiers d'itinéraire sont l'exportation du routeur que nous utilisons et qui n'a pas à être appelé Routeur, mais c'est le nom conventionnel.
Donc tout ce que nous avons nommé ici, nous avons juste besoin de faire référence à une annonce Didcot obtient et messages sur cet objet et ensuite envoyer cela en bas et nous pouvons fournir ce préfixe qui sera ajouté avant chaque itinéraire dans ce fichier.
Génial.
Donc, nous avons vraiment nettoyer les choses juste pour vous montrer combien nous avons 46 lignes dans cette app nous dans la version précédente.
Si nous ouvrions SJS, nous avions 177 lignes.
Donc, c'est une réduction assez drastique.