OK welkom terug in deze les gaan we halen rechts verder waar we gebleven waren en blijven over routing te praten en uit te drukken een drie hoofddoelstellingen.
De eerste is om te laten zien wat de splatt of Star Route matcher genoemd.
En dan wil ik dat je routes met route parameters te schrijven.
Dus we praten over hoe we dat doen welke route parameters.
En dan tot slot wil ik snel een discussie over Raut bestelling.
Laten we beginnen.
Ik ben het met precies dezelfde eerste express app die we eerder gebruikt.
Het is gewoon een enkele handeling.
Ja.
En een knooppunt doorns directory met de Express geïnstalleerd APTA ja heeft onze Hi Er zijn door en zijn schuine streep hond routes en we gaan gewoon door te gaan in deze les aan toe te voegen.
De eerste van deze doelstellingen die ik raakte introduceert de splatt of Star Route matcher voor ons of u een nieuwe code.
Ik ga gewoon opstarten van de server, zodat knooppunt ik ja heb gedaan.
Zorg ervoor dat het begint ok dan ga ik naar het tabblad waar ik eigenlijk de app een bezoek aan open te stellen en ik wil u eerst tonen dit bericht.
Dus dit gebeurt wanneer u probeert toegang te krijgen tot een van uw toepassingen wanneer de server helemaal niet actief is maar de server draait nu.
Dus als ik nu te vernieuwen krijg ik mijn hi there of als ik naar slash Doug krijg ik me nu.
Maar als ik wil laten zien is als ik naar een route die niet bestaat, zoals Slash honden en ik druk op enter en ik liet dit eerder Ik krijg een kan niet slash honden te krijgen en dat zal gebeuren om welke route die ik naar tenzij het van het ene 3 we've defined.
Slash hond en slash door.
Dus als we willen een soort van catchall hebben een soort van boodschap die we inspelen op elke andere route, met uitzondering van door de hond en de route kunnen we de ster te gebruiken.
Dus dat ziet er als volgt een apt get zullen doen en we krijgen gewoon ster en we doorgaan met alles precies hetzelfde.
En in plaats van hier zullen we gewoon een rode stip en u bent een ster, net als dat en op te slaan.
Dus deze code wordt geactiveerd deze lijn hier zal lopen.
Wanneer onze app elke GET-verzoek om het even welk u afgezien van deze drie dat we al zo hebt gedefinieerd weet krijgt zal ik je laten zien dat je nu moet de server opnieuw op te starten.
Ok hernieuwd het.
Vernieuw de pagina niets moet veranderen.
Maar nu, als ik naar een aantal willekeurige chipper ish route en ik druk op enter ik je bent een ster.
Maar mijn andere routes zijn ongewijzigd.
Als ik naar slash die nog steeds werkt als ik naar de hond die nog steeds werkt slash, maar als ik naar jibberish krijg ik je bent een ster.
Dit is vooral handig als u een soort van foutmelding of het gebied van web-pagina die u een gebruiker wanneer ze proberen te laten zien hebben en toegang tot een route die niet is gedefinieerd of een die je niet verwacht je kunt een soort van toon bericht of een HDMI-template die zegt Pagina niet gevonden.
Laten we nu teruggaan naar onze redacteur en ik ga iets waar ik ga deze kopiëren of knippen en te verplaatsen boven de andere routes en net te slaan dus niets veranderen proberen.
Afgezien van de orde, waar nu mijn ster route de catchall komt eerst en dan ga ik naar mijn server control-C opnieuw op en vervolgens pijl omhoog.
Nu ga ik om terug te gaan en vernieuw de pagina en dit moet niet veranderen, omdat dit nog steeds jibberish.
Dus het is nog steeds het raken van dat catch all route en niet het raken van een van de andere routes.
Maar als ik probeer en ga naar de root-pagina krijg ik nog steeds ben je een ster als ik probeer en ga naar slash hond die ik krijg je een ster en als ik probeer te gaan naar buy slash ook krijg ik je ster.
Dus dit wordt in die derde doelstelling die ik wilde een discussie over de volgorde van de routes en die discussie komt neer op deze orde van zaken route's.
Dus in dit geval als ik deze catch all out de ster die overeenkomt met alles wat als ik dat dan eerst niets anders ooit zal worden geëvenaard.
Het belangrijkste concept is dat de eerste route die overeenkomt met een bepaald verzoek is de enige weg die wordt uitgevoerd.
Dus voor één verzoek zullen we nooit hebben deze code uitvoert.
En dan is deze code wanneer een van deze terugbellen wordt uitgevoerd als het wordt geactiveerd dan zijn we klaar.
Dus dat verzoek werd vervolgens behandeld en het beweegt nooit op deze andere routes.
Maar laten we zeggen en we gaan deze terug naar beneden te gaan naar waar het was laten we zeggen dat dit is mijn code en iemand maakt een verzoek aan hond slash.
Het eerste ding dat zal gebeuren is uitgedrukt gaat om te controleren of het overeenkomt met deze route.
Was het een GET-verzoek naar slash.
Het antwoord is nee.
Dus dan controleert of het deze.
Was het een GET-verzoek om te kopen.
Nee.
Dus dan controleert of het deze.
Was het een GET-verzoek naar de hond slash.
Het antwoord is ja.
Dus het draait deze code en dan is het gedaan.
Het beweegt niet op en laat dit aan het eind.
Dus natuurlijk heb ik deze eerste is het problematisch, omdat het een van de andere routes die we hebben gedefinieerd overschrijft.
En ik zal gewoon altijd reageren met een ster die, hoewel het zorgt voor een grote motiverende website het is niet het gedrag dat we zoeken in een echte web app.
En de laatste doelstelling die ik wil praten over wat zeker het belangrijkste is iets genaamd route parameters te helpen route parameters te introduceren.
Ik ga om Reddit dot com gebruiken en tonen u enkele van zijn routes voor die u die niet bekend zijn met readed Ik beveel dat je vermeden ten koste van alles.
Luister niet naar wat ik over te zeggen.
U vindt er alle productiviteit te verliezen in je leven de manier waarop het werkt is dat mensen kunnen plaatsen verschillende berichten of het nu een link of een afbeelding of video of gewoon wat tekst.
Twee verschillende subeditors en er zijn duizenden en duizenden verschillende subsets elk met een categorie.
Dus nu ben ik te kijken naar de voetbal ingesloten kon ik ook naar de gaming één of naar muziek of naar grappige of nieuws of films.
En elk van die inhoud bevat die betrekking hebben op dat onderwerp.
Dus in dit geval ben ik op voetbal sub lees het en merkte de route Reddit dot com slash zijn slash voetbal.
Dus toen ik de server voor Reddit dot com slash gevraagd slash Socker zij de route ontleedt en het beseft dat we op zoek bent naar voetbal posten gaat naar de database krijgt alle voetbal berichten en stuurt ze naar mij in de reactie.
Maar zoals ik al eerder vermeld zijn er duizenden en duizenden verschillende onderwerpen en ik kan u verzekeren dat Reddit niet is ingesteld als deze waar er een route voor elke lezen.
Het is niet geschikt krijgen slash onze slash voetbal en ik zal gewoon verkorten dat en dan nog een voor muziek en een andere voor films en ga zo maar door.
Tienduizend plus tijden.
Dat is niet hoe het werkt rood.
Deze code is niet droog helemaal.
Vergeet niet droog staat voor jezelf niet te herhalen.
In feite is het erg nat tweemaal te schrijven alles.
Hoewel het meer op te schrijven alles 10.000 keer.
Dus in plaats van te definiëren een aparte route voor elke deelverzameling dat konden we een patroon te definiëren.
En dit is wat rood het doet.
Ze hebben een patroon dat zoiets als Slash of slash een sub noem maar op.
Maar als we gewoon laten zoals dit als slash onze boterham op naam zal het alleen overeen als ik naar onze slash Sublette deze naam slash en ze overeenkomen met het precies hetzelfde.
Voordat ik je laten zien hoe we rond dat wanneer je terug te gaan om het te lezen en klik op een van de berichten.
Dus dit bericht hier ga ik klik erop en kijk naar de route.
Dus het is klaar om te komen.
Slash onze slash soccor slash reacties slash deze gekke koord is het een IED slash de titel van het bericht of een deel van de titel.
En als je naar deze route krijgt u alle opmerkingen die overeenkomen met dit bericht aan de post die die titel heeft.
En natuurlijk zijn er miljoenen en miljoenen verschillende berichten op Reddit en ze niet hebben elk hun eigen route gedefinieerd.
Dus er is niet een route die er als volgt uitziet binnenkant van de server code zoiets krankzinnig te hebben voor elke functie zou zijn.
Vooral omdat de berichten zijn allemaal gemaakt door de gebruikers en niemand wie het schrijven van de code kan al die verschillende berichten anticiperen.
Dus in plaats daarvan zouden we een soort patroon willen waar we onze slash sub lezen naam.
In dit geval voetbal slash opmerkingen slash en Id slash titel en net als degene die boven de plaats waar het had Sublette noem maar op.
Dit zal alleen overeenkomen als we letterlijk woord voor woord typen karakter voor karakter van dien aard zijn een subset deze naam slash reacties slash ID slash titel.
Dus om het te maken in een patroon dat we gebruik maken van wat zijn route parameters of route variabelen genoemd en in andere frameworks mensen noemen ze weg variabelen ook.
Ze zijn heel erg eenvoudig te implementeren.
Als ik wil een patroon waar we luisteren naar een GET-verzoek naar onze slash iets anders achteraf een enkele Sabet deze naam slash definiëren.
Het enige wat je hoeft te doen is een dubbele punt daar en dat zegt uitdrukkelijk niet voldoet momenteel aan karakter voor karakter subset van naam, maar om er een patroon waarbij relistening voor Slash worden achteraf slash een woord te maken.
Dus laat me reageer op dit één uit voor nu en laten we eindigen dit met ons verzoek en reactie en open het net als dat en alles wat het zal doen is te lezen is heeft te sturen.
Welkom in een onderwerp en we zullen gewoon behalve dat en onze server opnieuw op.
Nu als ik dit bericht wilt zien dat ik moet naar een route die overeenkomt met dit patroon.
Dus laten we teruggaan en opfrissen en als we gaan om te schuiven door we hetzelfde krijg nog steeds.
Als we naar die pagina we zo krijgen hetzelfde.
Maar nu als we naar onze slash puppies slash nu krijg ik een bericht dat Welkom in een sub-Reddit zegt.
Dus slash onze slash puppies volgt dit patroon en zo slash onze slash voetbal of een andere deelverzameling die ik kon bedenken.
Maar het is belangrijk om op te merken zoiets als dit niet zou werken.
Slash onze slash soccor slash hello die niet meer werkt, want dit is een ander patroon.
Dus het is niet zoals een wild card waar het zegt slash slash of iets anders achteraf.
Wat het werkelijk betekent is iets dat in wordt geleverd met Slash evenaren of slash een enkel ding volgen.
Dus niet slash zijn slash op naam slash iets anders maar slash slash soccor slash slash puppies.
En ik zeg slash zijn veel en het wordt echt vervelend.
Dus laten we verder gaan hier beneden en ik zal je laten zien hoe we dit kunnen omzetten.
Het ziet er precies hetzelfde.
We hebben net een dubbele punt in de voorkant van iets dat we willen een variabele en iets dat we willen dat de gebruiker of de toepassing om te kunnen veranderen.
Dus commentaar moet altijd gewoon commentaar op elke reddit paal.
Het is altijd de naam van het deelgebied Reddit zoals voetbal slash opmerkingen slash de ID-slash de titel van een post zo zegt zijn er altijd en dit zal nu worden aangepast als ik naar een nederlaag.
Laten we eindigen dit uit functie verzoek reactie moet komen met een route naar deze wedstrijd.
Ik heb een klein bericht dat is erg leuk uit Cloud 9 me te vertellen dat het niet verwachtte deze prent te zien.
Dat is omdat ik niet het aanroepen van een methode.
Dus nu laten we een rode stip te sturen en ik zal gewoon Welkom op de pagina reacties net als dat en al op te slaan en de server opnieuw op te starten nu op deze route aan te passen.
Ik moet naar onze slash onderverhuren naam slash reacties slash een ID iets slash slash een titel die om het even wat ook kan zijn.
En laten we dat nu doen.
We gaan naar slash slash voetbal slash reacties slash elke ID.
We zullen een twee drie te doen, maar het hoeft niet om nummers te zijn.
Het zou een woord.
Het is niet helemaal uit.
En dan slash een titel als mijn eerste voetbalwedstrijd en als we druk op Enter we nu Welkom op de pagina reacties.
Maar natuurlijk kan ik dit veranderen en maken het wat willekeurige tekenreeks.
En dan nog een titel die een willekeurige tekenreeks of gewoon nummers.
En ik overeenkomen nog steeds dat patroon.
Dus het is niet te controleren op het feit dat er iets letters of woorden of heeft underscores of dat het minimaal 10 tekens in het niet schelen.
Er zijn manieren om dat te doen.
Maar dit alles geeft om een ​​patroon van stukken tekst, gevolgd door en gedeeld door slashes de laatste en belangrijkste ding is hoe we toegang tot deze gegevens uit in plaats van onze route handler.
Dus als ik wilde een bericht te sturen dat was weet u van harte welkom om het voetbal Sublette wanneer de gebruiker naar slash voetbal slash.
Maar ik wil het wel te veranderen.
Welkom bij de pups.
Dus ik heb het gelezen wanneer ze naar onze slash puppies.
Ik heb een manier om toegang te krijgen tot die uit.
En weet je wat de waarde was van onderverhuren het aan hem en uitte geeft ons een leuke en eenvoudige manier om dat te doen in plaats van dit verzoek object.
Tot nu toe hebben we alleen gewerkt met de respons en bewoners, maar het verzoek object bevat alle informatie over de binnenkomende aanvraag.
Laten we gewoon een eenvoudige con. log verzoeken en we zullen waarschijnlijk niet daadwerkelijk in staat zijn om al dat veel zien, want er is zo veel daar dat het alleen zal afdrukken van een klein deel van het.
Maar laten we het gewoon proberen en de server opnieuw op en sloeg deze route.
Dus onze slash voorleggen noem maar op voetbal.
En hier zie je het eigenlijk wordt afgedrukt het hele ding uit.
En dus er is een heleboel informatie afkomstig van dat verzoek.
Dat is alles wat die hier afgedrukt.
En wat ik ben op zoek naar is iets genaamd request parameters die moet worden waar we hier te gaan.
Het is een object dat alle route parameters en de bijbehorende waarden bevat.
Dus in dit geval sub Krediet naam is gelijk aan Socker want ik ging naar onze slash voetbal slash.
Dus wat we kunnen doen is laten we annuleert dat log verzoeken te stoppen harams in plaats van het hele ding en op te slaan en vervolgens te vernieuwen of de server opnieuw.
En nu als ik naar onze slash slash hello zal zeggen dat ingesloten naam hello.
Ze kunnen hetzelfde doen voor puppies.
En daar gaan we.
Laat ik je hetzelfde toen we hebben meerdere parameters pad zoals wij hier doen.
Dus ik zal gewoon dat daar.
Sla de server opnieuw opstarten en dan zal deze route leiden door te gaan naar onze slash puppies slash reacties slash een ID-slash titel.
Mijn kern is schattig en druk op enter en we krijgen.
Welkom op de pagina Commons.
En als ik kijk in de terminal zal ik zien dat we drie verschillende route parameters drie verschillende harams.
Subset noemt als puppies ID is 1 2 3 4 of titel mijn Corgi is schattig.
Wikkel dit wanneer we reageren met Welkom op een subset te laten we eigenlijk maken.
Welkom bij de pup verspreid.
Welkom op de wat verspreid.
En om het een beetje meer plezier laten we ervoor zorgen dat het allemaal hoofdletters.
Dus wat we doen is het maken van een variabele ver en we noemen het sub deze gelijk is aan verzoeken tot harams sub Krediet naam moet exact overeenkomen met wat wij noemen het hier.
Vergeet niet het is gewoon binnenkant van deze aanvraag.
Harams object in plaats van alleen te reageren met van harte welkom om een ​​subset het zal doen.
Welkom in de ruimte.
Plus Ik heb het gelezen plus ik heb het gelezen, dus dat van harte welkom om de pups zal zijn.
Lees het en het zal niet in hoofdletters zijn.
Dus om dat hoofdletters we kunnen gebruiken om hoofdletters te maken kunnen we dat hier doen of we kunnen doen hier op Sublette het en ik zal ontdoen van die puntkomma te krijgen en op te slaan en de server opnieuw op.
Laten we terug gaan en leiden tot die route weer.
Dus dit zal niet leiden tot het.
Dit is voor de router die meerdere parameters heeft.
We willen gewoon onze slush puppy's en ik krijg.
Welkom bij de pup.
Klaar.
Nu, als ik zijn gesneden puppies of slash honden allemaal opgegroeid of katten en ik heb nu een dynamische webpagina.
Oké dus laten we wrap up dit heel snel en ga terug naar toen we gebruik maken van de ster in plaats van een route definitie.
Het zal alles wat in komt bij allen en samen met dat de volgorde waarin we zaken de route te definiëren te passen.
Dus als we de ster Routemaster up top geen andere routes loopt eronder.
Maar als we het op de bodem dat is waar het normaal gesproken gaat het zal gedragen als een catch all soort als else.
Indien geen andere route is afgestemd anders overeen met de ster.
Tot slot hebben we gesproken over de route parameters die we kunnen gebruiken om een ​​patroon in een route die niet hoeft te worden aangepast woord voor woord of teken voor teken te definiëren.
moet gewoon aan te passen in hetzelfde patroon.
Dus zoiets als dit waar ik Slash kan hebben zijn slash elke deelverzameling is vernoemd.
Oké dus dat is het.