OK Bienvenue dans cette leçon, nous allons choisir juste où nous avons laissé et continuer à parler de routage et d'exprimer un trois objectifs principaux.
Le premier est de montrer ce qu'on appelle le splatt ou Star Matcher route.
Et puis je veux que vous écriviez des itinéraires contenant des paramètres d'itinéraire.
Donc, nous allons parler de la façon dont nous faisons que les paramètres d'itinéraire sont.
Et puis enfin je veux avoir une discussion rapide sur l'ordre Raut.
Commençons.
J'utilise exactement la même première application express que nous avons utilisée auparavant.
C'est juste un acte unique.
Oui.
Et un nœud mandrels répertoire avec l'Express installé APTA oui a notre Hi Il ya par et sont des itinéraires de chiens slash et nous allons simplement continuer à ajouter à cette dans cette leçon.
Le premier de ces objectifs que je vais frapper est l'introduction de la splatt ou Star Matcher route avant de nous ou vous tout nouveau code.
Je vais juste démarrer le serveur si nœud, j'ai fait oui.
Assurez-vous qu'il démarre ok puis je vais ouvrir l'onglet où je suis en fait visiter l'application et je veux vous montrer ce message d'abord.
Donc, cela se produit lorsque vous essayez d'accéder à une de vos applications lorsque le serveur ne fonctionne pas du tout, mais le serveur est en cours d'exécution maintenant.
Donc, si je rafraîchir maintenant, je reçois mon salut là ou si je vais à slash Doug, je m'obtiens maintenant.
Mais quand je veux montrer est si je vais à un itinéraire qui n'existe pas comme des chiens Slash et j'ai touché entrer et j'ai montré cela plus tôt, je reçois un ne peut pas obtenir des chiens slash et qui se produira pour n'importe quel itinéraire que je vais sauf si c'est L'un des trois que nous avons définis.
Slash chien et slash par.
Donc, si nous voulons avoir une sorte de catchall une sorte de message que nous répondons à tous les autres itinéraires, sauf par le chien et l'itinéraire que nous pouvons utiliser l'étoile.
Donc cela ressemble à ceci fera un apt obtenir et nous obtenons juste l'étoile et nous procédons avec tout autrement exactement le même.
Et au lieu d'ici nous ferons juste un point rouge et vous êtes une étoile juste comme ça et économisez.
Donc, ce code sera déclenché cette ligne ici sera exécuté.
Chaque fois que notre application obtient n'importe quelle demande d'obtenir à tout que vous savez en dehors de ces trois que nous avons déjà définis ainsi je vais vous montrer que maintenant vous devez redémarrer le serveur.
Ok redémarré.
Actualisez la page rien ne doit changer.
Mais maintenant, si je vais à un aléatoire chipper ish route et je frappe entrer, je vous obtenir une étoile.
Mais mes autres routes sont inchangées.
Si je vais au slash qui fonctionne toujours si je vais au chien de chasse qui fonctionne toujours mais si je vais à jibberish je vous obtenez une étoile.
Cela est particulièrement utile si vous voulez avoir une sorte de message d'erreur ou une zone de page Web que vous montrez à un utilisateur quand ils tentent d'accéder à un itinéraire qui n'est pas défini ou celui que vous n'attendez pas, vous pouvez afficher une sorte de Message ou un modèle HDMI qui indique que la page n'a pas été trouvée.
Revenons maintenant à notre rédacteur et je vais essayer quelque chose où je vais copier ceci ou le couper et le déplacer au-dessus des autres itinéraires et juste l'enregistrer ainsi ne changent rien.
Mis à part l'ordre où maintenant mon itinéraire star le catchall vient en premier et puis je vais redémarrer mon serveur Control-C et puis flèche vers le haut.
Maintenant, je vais revenir et rafraîchir la page et cela ne devrait pas changer parce que c'est encore jibberish.
Donc, c'est toujours frapper que prendre toutes les routes et ne pas toucher les autres routes.
Mais si j'essaie d'aller à la page de la racine, je reçois toujours vous êtes une étoile si j'essaie et aller au chien slash, je obtenir votre une étoile et si j'essaie d'aller à la barre oblique acheter, je reçois aussi votre étoile.
Donc, c'est ce troisième objectif qui est que je voulais avoir une discussion sur l'ordre des itinéraires et que la discussion se résume à cet ordre de route des questions.
Donc, dans ce cas, si je mets cette capture tous sur l'étoile qui correspond à tout si je mets cela d'abord puis rien d'autre ne sera égalé jamais.
Le concept clé est que la première route qui correspond à une demande donnée est la seule voie qui sera exécutée.
Donc, pour une demande, nous n'aurons jamais ce code exécuté.
Et puis ce code si un de ces rappels est en cours d'exécution si elle est déclenchée alors nous avons terminé.
Cette demande a donc été traitée et elle ne se déplace jamais sur ces autres routes.
Mais disons et nous allons déplacer ce retour vers le bas à l'endroit où il était disons que c'est mon code et quelqu'un fait une demande de slash chien.
La première chose qui va arriver est exprimée va vérifier si elle correspond à cette route.
Était-ce une demande de slash.
La réponse est non.
Donc, il vérifie celui-ci.
Était-ce une demande d'achat pour acheter.
Nan.
Donc, il vérifie celui-ci.
Était-ce une demande de slash de chien.
La réponse est oui.
Donc, il exécute ce code et puis il est fait.
Il ne bouge pas et vérifie celui-ci à la fin.
Donc, bien sûr, j'ai mis cela d'abord, c'est problématique, car il remplace toutes les autres routes que nous avons définis.
Et je vais toujours répondre avec une étoile qui, bien qu'il fasse pour un grand site Web de motivation, ce n'est pas le comportement que nous recherchons dans une application web réel.
Et le dernier objectif dont je veux parler, qui est certainement le plus important, est quelque chose appelé paramètres d'itinéraire pour aider à introduire des paramètres d'itinéraire.
Je vais utiliser Reddit dot com et vous montrer quelques-uns de ses itinéraires pour ceux que vous n'êtes pas familier avec lus Je recommande fortement que vous évité à tout prix.
N'écoutez pas ce que je vais dire.
Vous perdrez toute productivité dans votre vie de la façon dont cela fonctionne, c'est que les gens peuvent publier des messages différents que ce soit un lien ou une image ou une vidéo ou tout simplement un texte.
Deux subediteurs différents et il ya des milliers et des milliers de sous-ensembles différents chacun avec une catégorie.
Donc, en ce moment, je regarde le football subtended, je pourrais aussi aller à l'un jeu ou à la musique ou à drôle ou à des nouvelles ou des films.
Et chacun d'eux a un contenu qui est lié à ce sujet.
Donc, dans ce cas, je suis sur le soccer sous lire et j'ai remarqué la route Reddit dot com slash sont slash soccer.
Donc, quand j'ai demandé au serveur pour Reddit dot Slash slash barre Socker il analyse l'itinéraire et il réalise que nous sommes à la recherche de postes de football va à la base de données obtient tous les postes de soccer et les envoie à moi dans la réponse.
Mais comme je l'ai mentionné plus tôt il ya des milliers et des milliers de sujets différents et je peux vous assurer que Reddit n'est pas mis en place comme ça, où il ya un itinéraire pour chaque lecture unique.
Il n'est pas apt obtenir slash notre soccer slash et je vais juste raccourcir que puis un autre pour la musique et un autre pour les films et ainsi de suite.
Dix mille fois plus.
Ce n'est pas comment rouge il fonctionne.
Ce code n'est pas sec du tout.
N'oubliez pas les stands secs pour ne pas vous répéter.
En fait, c'est très humide écrire tout deux fois.
Bien qu'il soit plus comme écrire tout 10000 fois.
Ainsi, plutôt que de définir un itinéraire distinct pour chaque sous-ensemble, nous pourrions définir un modèle.
Et c'est ce qu'il fait rouge.
Ils ont un modèle qui quelque chose comme Slash ou slash un sous-nom.
Mais si on la laisse comme ça, comme on coupe notre tranche de pain au nom, elle ne correspondra que quand je vais taper sur notre barre oblique Sublette, et ils correspondent exactement à la même chose.
Avant que je vous montre comment nous obtenons autour de cela quand vous retournez le lire et cliquez sur un des poteaux.
Donc, ce post ici, je vais cliquer dessus et regarder l'itinéraire.
Donc, il est prêt à venir.
Slash notre slash soccor slash commentaires slash cette ficelle fou, c'est un IED barre oblique le titre du poste ou une partie du titre.
Et quand vous allez à cette voie vous obtenez tous les commentaires qui correspondent à ce post pour le poste qui a ce titre.
Et bien sûr, il ya des millions et des millions de postes différents sur Reddit et ils n'ont pas chacun leur propre itinéraire défini.
Donc, il n'y a pas un itinéraire qui ressemble à ceci à l'intérieur du code serveur quelque chose comme ça serait fou d'avoir pour chaque post unique.
Surtout parce que les messages sont tous créés par les utilisateurs et personne qui écrit le code peut anticiper tous ces postes différents.
Donc au lieu de cela nous voudrions une sorte de modèle où nous avons notre slash sub lire son nom.
Dans ce cas, le football slash commentaires slash et Id slash titre et tout comme celui ci-dessus où il avait Sublette son nom.
Cela ne fera que correspondre si nous littéralement tapez le mot pour le caractère de mot pour le caractère sont un tel sous-ensemble qu'il nomne les commentaires de barre oblique slash ID titre de barre oblique.
Donc, pour en faire un modèle, nous utilisons ce que l'on appelle des paramètres de route ou des variables d'itinéraire et dans d'autres cadres, les gens les appellent des variables de chemin.
Ils sont très très simples à mettre en œuvre.
Si je veux définir un modèle où nous écoutons pour une demande d'obtenir de réduire notre slash rien d'autre après tout Sabet unique nom.
Tout ce que vous avez à faire est de mettre un colon à droite là et qui dit express pour ne pas réellement match de caractère pour le sous-ensemble de caractères de nom, mais pour en faire un modèle où relistening pour Slash sont slash un mot après.
Permettez-moi donc de commenter celui-ci pour l'instant et nous allons terminer ceci avec notre demande et la réponse et l'ouvrir comme ça et tout ce qu'il fera est de lire est fait envoyer.
Bienvenue sur un sujet et nous allons simplement enregistrer cela et redémarrer notre serveur.
Maintenant, si je veux voir ce message, je dois aller à un itinéraire qui correspond à ce modèle.
Alors revenons en arrière et rafraîchissons et si nous allons glisser par nous obtenons toujours la même chose.
Si nous allons à cette page nous obtenons ainsi la même chose.
Mais maintenant, si nous allons à slash nos chiots slash, je reçois maintenant un message qui dit Bienvenue à une sous Reddit.
Donc, slash nos chiots de coupe suit ce modèle et ainsi réduire notre soccer slash ou tout autre sous-ensemble que je pourrais trouver.
Mais il est important de noter que quelque chose comme ça ne marcherait pas.
Slash notre slash soccor hlas bonjour qui ne fonctionne plus parce que c'est un modèle différent.
Donc ce n'est pas comme un wild card où il dit barre oblique ou barre tout autre chose par la suite.
Ce que cela signifie vraiment est de faire correspondre tout ce qui vient avec Slash ou barre n'importe quoi après.
Donc, pas de slash sont slash au nom slash autre chose, mais slash slash slash slash chiots.
Et je dis que slash sont beaucoup et ça devient vraiment ennuyeux.
Alors allons-y et je vais vous montrer comment on peut convertir celui-ci.
Il semble exactement la même chose.
Nous venons de mettre un colon en face de tout ce que nous voulons être une variable et tout ce que nous voulons que l'utilisateur ou l'application pour être en mesure de changer.
Ainsi, les commentaires doivent toujours être des commentaires sur chaque post reddit.
C'est toujours le nom de la Reddit secondaire, comme les commentaires sur le slash de soccer slash l'ID slash le titre d'un post ainsi commentaires son toujours là et cela va maintenant être appariés si je vais à une déroute.
Terminons cette réponse de demande de fonction doit venir avec un itinéraire pour correspondre à celui-ci.
J'ai eu un petit message ici qui est vraiment gentil de Cloud 9 me disant qu'il ne s'attendait pas à voir cette impression.
C'est parce que je n'appelais pas une méthode.
Donc, maintenant, faisons un envoi point rouge et je vais juste Bienvenue à la page des commentaires tout comme ça et tous les enregistrer et redémarrer le serveur maintenant pour correspondre à cette route.
J'ai besoin d'aller à slash notre slash sous-louer nom slash commentaires slash un ID tout slash un titre qui peut être quelque chose aussi bien.
Et faisons-le maintenant.
Nous allons aller à slash slash soccer slash commentaires slash toute ID.
Nous allons faire un deux trois, mais il n'a pas à être des nombres.
Ce pourrait être un mot.
Ça n'a pas d'importance du tout.
Et puis taper un titre comme mon premier match de football et si nous frappons Enter nous obtenons maintenant Bienvenue à la page des commentaires.
Mais bien sûr, je peux changer cela et en faire une chaîne aléatoire.
Et puis un autre titre qui est une chaîne aléatoire ou juste des nombres.
Et je suis toujours en accord avec ce modèle.
Donc, ce n'est pas de vérifier le fait que quelque chose est des lettres ou des mots ou a des soulignements ou que c'est au moins 10 caractères, il ne se soucie pas.
Il y a des façons de le faire.
Mais tout cela se préoccupe est un modèle de morceaux de texte suivi par et divisé par des barres obliques la dernière chose et la plus importante est comment nous accéder à ces données au lieu de notre gestionnaire d'itinéraire.
Donc, si je voulais envoyer un message ici qui était vous savez bienvenue à la Sublette de football quand l'utilisateur va au slash soccer.
Mais je veux qu'il change aussi.
Bienvenue aux chiots.
Donc, je l'ai lu quand ils vont à nos chiots à slash.
J'ai besoin d'un moyen d'y accéder.
Et vous savez quelle était la valeur de sous-louer à lui et exprimé nous donne un moyen agréable et facile de le faire au lieu de cet objet demande.
Jusqu'à présent nous avons seulement travaillé avec les résidents de réponse et mais l'objet de demande contient toutes les informations sur la demande entrante.
Faisons un simple con. Log requêtes et nous ne sera probablement pas réellement être en mesure de voir tout ce que beaucoup parce qu'il ya tellement là qu'il n'imprimera qu'un petit sous-ensemble de celui-ci.
Mais essayons juste de redémarrer le serveur et de frapper cette route.
Donc, notre slash le soumettre au football.
Et ici, vous pouvez le voir en fait ne imprimer toute la chose.
Il y a donc beaucoup d'informations provenant de cette demande.
Tout cela est imprimé ici.
Et ce que je cherche, c'est quelque chose qui s'appelle des paramètres de demande qui devraient être là où nous allons ici.
C'est un objet qui contient tous les paramètres d'itinéraire et leurs valeurs correspondantes.
Donc, dans ce cas, sous redit nom est égal à Socker parce que je suis allé à slash notre slash soccer.
Donc, ce que nous pouvons faire est de laisser annuler que les demandes de journal arrête harams plutôt que la chose entière et sauver et puis rafraîchir ou redémarrer le serveur.
Et maintenant, si je vais à barre oblique bonjour, il va dire que le nom sous-entendu est bonjour.
Ils peuvent faire la même chose pour les chiots.
Et voilà.
Permettez-moi de vous montrer la même chose lorsque nous avons plusieurs paramètres de chemin comme nous le faisons ici.
Donc, je vais juste mettre cela là.
Enregistrer redémarrer le serveur à nouveau et puis va déclencher cette route en allant à nos slash chiots slash commentaires slash un ID slash titre.
Mon noyau est mignon et frappé entrer et nous obtenons.
Bienvenue sur la page des Communes.
Et si je regarde dans le terminal, je verrai que nous avons trois paramètres d'itinéraire différents trois harams différents.
Sous-ensemble il nom comme chiots ID est 1 2 3 4 et le titre est mon Corgi est mignon.
Enveloppez ceci lorsque nous répondons avec Bienvenue dans un sous-ensemble, nous allons le faire.
Bienvenue au chiot étalé.
Bienvenue dans ce qui s'est répandu.
Et pour le rendre un peu plus amusant, nous allons nous assurer que tout est en majuscules.
Donc, ce que nous allons faire est de faire une variable loin et nous allons appeler il est égal à la demande jusqu'à harams sous redit nom doit correspondre exactement à ce que nous l'appelions ici.
Rappelez-vous que c'est juste à l'intérieur de cette demande.
Harams objet plutôt que de simplement répondre avec bienvenue à un sous-ensemble il fera.
Bienvenue dans l'espace.
Plus je l'ai lu plus je l'ai lu de sorte que sera le bienvenue aux chiots.
Lisez-le et il ne sera pas en majuscules.
Donc, pour faire que les majuscules nous pouvons utiliser en majuscule, nous pouvons le faire ici ou nous pourrions le faire ici même sur Sublette, et je vais me débarrasser de ce point-virgule et enregistrer et redémarrer le serveur.
Revenons et déclenchez cette route à nouveau.
Donc, celui-ci ne va pas le déclencher.
C'est pour le routeur qui a plusieurs paramètres.
Nous voulons juste nos chiots de boue et je reçois.
Bienvenue au chiot.
Prêt.
Maintenant, si je ne sont chiots taillés ou sont des chiens slash tous les adultes ou des chats et j'ai maintenant une page web dynamique.
Très bien, allons-y vraiment très vite et revenir à quand nous utilisons l'étoile au lieu d'une définition d'itinéraire.
Il correspond à tout ce qui vient en tout et avec que l'ordre que nous définissons les questions de l'itinéraire.
Donc, si nous mettons l'étoile Routemaster au sommet, aucun autre itinéraire ne fonctionnera au-dessous.
Mais si nous le mettons au fond, qui est l'endroit où il va normalement, il se comporte comme une capture tout type d'une déclaration else.
Si aucun autre itinéraire n'est égalé, sinon il correspond à l'étoile.
Enfin, nous avons parlé des paramètres d'itinéraire que nous pouvons utiliser pour définir un motif dans une route qui n'a pas besoin d'être apparié mot pour mot ou caractère pour le caractère.
Il suffit de faire correspondre dans le même schéma.
Donc, quelque chose comme ça, où je peux avoir Slash sont slash tout sous-ensemble il a nommé après.
Très bien, c'est tout.