Bene, torna indietro.
Quindi questa è una delle lezioni più importanti dell'intero corso.
Ma sarà anche molto diverso da tutto ciò che abbiamo fatto finora.
E la ragione per cui è diverso è che ti mostrerò un mucchio di
codice che non hai mai visto prima e che non ti aspetti affatto di capire.
La ragione per cui sto facendo questo è che voglio darti una panoramica concettuale di come tutti questi pezzi combaciano.
Il database del server richiede GET post richiede il browser.
Tutte queste richieste e risposte di cose diverse.
Voglio mostrare tutto ciò con un'applicazione di lavoro davvero semplice.
Quindi è quello che farò qui.
Se stavo insegnando questo di persona questo sarebbe il punto in cui ti chiedo di mettere il tuo laptop in giù per
chiudere il tuo computer.
Ovviamente non è una buona idea qui.
Ma il sentimento dietro questo è che non voglio che tu prenda appunti su questo.
Stiamo andando a esaminare ogni singola riga e scriverla da zero e realizzare cinque sei
sette di queste diverse app utilizzando questi concetti.
Quindi questo è solo il modo in cui le cose si incastrano non i dettagli reali di come funzionano.
Detto questo, andiamo avanti e cominciamo qui.
Quindi questa applicazione è a tema intorno ai cani.
È molto, molto semplice
Nessuno stile.
Solo poche pagine diverse.
E la prima cosa di cui dobbiamo parlare è che cos'è questo intero file.
Quindi questo è il nostro file server.
Nel mio caso si chiama app dodge.
Sì, questo è scritto in Javascript.
E quando eseguo questo file, avvierà effettivamente un server per me.
Quindi, quando ho menzionato prima, quando inviamo una richiesta per leggerla, c'è il codice sul server
Reddit che sta ascoltando una richiesta per leggerlo.
Ora com slash search e poi ti rimanda i dati corretti in una risposta.
Quando dico che c'è il codice sul server Reddit questo è il tipo di codice di cui stiamo parlando.
Questo è il nostro codice sul server che sta ascoltando richieste diverse e quindi risponde con pezzi diversi.
Quindi anche se read è fatto in Python e questo è javascript
Ci sono tre grandi blocchi e questo in alto è solo ottenere la nostra applicazione impostata.
Quindi includendo le librerie giuste come puoi vedere ci sono alcune dipendenze.
Di nuovo li esamineremo tutti più tardi.
Quindi abbiamo alcune cose del database.
Quindi questo è impostare il nostro database in modo che il nostro database sappia che ogni cane ha un nome e una razza
e sono entrambi stringhe.
E questo è tutto citato per ora.
E poi ci sono queste cose chiamate wraps, dove trascorriamo la maggior parte del
nostro tempo in questa lezione prima di farlo, anche se voglio sottolineare la parte più importante per avviare effettivamente
il server che è proprio alla fine qui linea non importa la sintassi ma cosa importa.
C'è il numero qui tremila.
Ciò che questo farà sarà quando eseguiremo questa applicazione quando eseguirò questo file nel mio
terminale che inizierà effettivamente a server up e la nostra applicazione sarà sulla porta 3000.
Quindi lascia che ti mostri cosa intendo.
Ho intenzione di avviare questo server eseguendo il file di nuovo non importa quello che sto facendo lì.
E puoi vedere che ricevo un messaggio che serve la demo del cane sulla porta 3000.
Quindi quello che ho il mio editor di testo sto scrivendo il codice qui per il mio server.
Quindi nel mio terminale sto effettivamente eseguendo il server.
Quindi ora questo codice viene eseguito tutto questo codice viene eseguito e questa linea in particolare ha avviato
un server sulla porta tremila.
Quindi se vado al porto tremila ora e il modo in cui arrivo lì è il padrone di casa Colan 3000 vedo qualcosa
che dice la home page.
Parliamo di come otterrò l'HMO della home page se visualizziamo l'origine della pagina.
Puoi vedere tutto quello che ho ricevuto come risposta era un singolo H-1 che dice home page e basta.
Quindi se torno al mio server qui ci sono alcune cose che voglio sottolineare.
Il primo è che nel mio terminale in cui è stato avviato il server c'è un piccolo messaggio che
è stato stampato.
E ciò che questo ci dice è che qualcuno ha fatto una richiesta di ottenere che è ciò che questo dice
qui al tuo arole.
Quindi localhost 3000 slash.
Quindi non c'è niente dopo.
Noi chiamiamo questo il percorso radice o semplicemente il percorso che è fondamentalmente ciò che vogliamo che sia la nostra home page.
Quindi di nuovo sono andato su localhost 3000 e ho premuto invio.
E questo mi ha dato un po 'di codice, ma se andassi a localhost 3000 slash dogs che mi restituissero un po' di roba diversa
se guardassi il sorgente della pagina
su questo posso vedere se otteniamo più contenuti diversi dal contenuto che abbiamo ottenuto la prima
volta questo perché è una riga diversa o una rotta diversa.
Quindi in questo caso non stavo solo chiedendo Slash.
Stavo chiedendo dei cani Slash.
E se guardi nell'output del terminale puoi vedere che c'è una differenza tra una richiesta di ottenere una
barra o una richiesta di rimozione dei cani.
Questo mi sta solo mostrando così posso mostrarti cosa sta succedendo ma questa non è logica o niente.
È solo una finestra sulle richieste che vengono fatte.
OK, questo è il lato delle richieste.
Quando premo invio, faccio una richiesta.
La stessa cosa qui.
Li sto facendo solo in due posti diversi.
E naturalmente posso far sì che ricevano richieste anche con il postino.
Quindi facciamo e otteniamo la richiesta di localhost 3000 proprio così.
Prenditi un momento e pensa a cosa ti aspetti di vedere quando clicco invio.
Eccoci, ho appena ottenuto la stessa identica H-1 e se faccio un host locale 3000 slash dogs che è una
richiesta get e premo invio ricevo la stessa mail HD che abbiamo ottenuto quando ho fatto una richiesta get
nel browser colpendo accedere.
Ora parliamo della logica che fa accadere tutto ciò dal lato server.
al sublime e mi concentrerò su queste tre parti proprio qui e in particolare su queste due.
Quindi tornerò
So di essere un disco rotto su questo argomento ma la sintassi non è la parte importante.
Trascorreremo così tanto tempo a scrivere effettivamente queste rotte che non è significativo.
Ciò che è significativo è che in questo primo piccolo pezzo questo codice è in attesa di una richiesta di ottenere una barra
per ottenere una barra.
E quando ciò accade, stiamo rendendo una pagina chiamata home.
Quindi, di nuovo, quando viene richiesta una richiesta per tagliare la barra locale di localhost 3000 nient'altro,
allora renderemo qualcosa chiamato home.
E qui ho il file chiamato home.
Non importa cosa siano gli Ejay.
E al suo interno c'è un H1 che dice homepage.
Quindi aggiungiamo qualcos'altro in un paragrafo basso proprio così e salviamo.
E ora quando fanno una richiesta di ottenere solo una richiesta di tagliando mi viene restituito il contenuto di
quel file e per far funzionare le modifiche devo riavviare il mio server.
Quindi inizierò ora e vedrò di metterlo da parte e tornerò su Chrome per ottenere di nuovo il
mio server.
Ho intenzione di ottenere una richiesta di localhost 3000.
Come puoi vedere, mi dice che è stata fatta una richiesta per tagliare.
E abbiamo recuperato questo contenuto.
Quindi di nuovo il nostro codice qui sta ascoltando, otteniamo una barra delle richieste e decidiamo quale file inviare.
Ora ecco un'altra versione più complicata di quella in cui stiamo ascoltando una richiesta di prelievo
di cani.
E poi c'è un altro codice che sta accadendo qui.
E mi limiterò a leggere un commento.
Tutto ciò che accade qui è ottenere tutti i cani dal database, quindi ho già alcuni nel nostro database.
E poi la prossima parte è rendere il file dei cani e lo lasceremo per ora.
Quindi stiamo prendendo tutti i cani nel database e rendiamo il file dei cani che è proprio qui.
E questo sembra un po 'diverso.
Non è solo lui.
Abbiamo alcune cose strane qui che non abbiamo visto prima.
Ma alla fine della giornata quello che succede è quando vado a tagliare i cani, la nostra app è in attesa di una richiesta
per tagliare i cani.
Quando ne ottiene uno recupera tutti i cani nel database e ognuno ha un nome o una razza
e quindi fa una piccola bugia per ognuno.
Quindi ognuno di questi è un alleato con un nome e una razza.
Quindi, di nuovo abbiamo due barre come una richiesta di ottenere e cani slash come richiesta di ottenere e otteniamo
due file diversi e un po 'di logica quando andiamo a tagliare i cani contro quando andiamo a tagliare.
Non c'è alcuna logica che accada nulla sta accadendo con il database.
Ci sta solo dando una pagina statica.
Ma questo non è statico.
Questo dipende da ciò che proviene dal database.
Torna al server qui per il nostro codice e parlerò un po 'di questa linea qui.
Quindi rendiamo una pagina un modello chiamato Cani che è ciò che è scritto proprio qui cani.
Sì, ma stiamo trasmettendo dati a questo modello perché questo non ha un alleato qui che dice resta dash mutt e non ne ha
un altro in seguito nel modello che dice perché precipita d'oro come puoi vedere è
così che noi stai entrando nel browser.
Ma il nostro file non ha nulla di tutto ciò.
E questo è ciò che lo rende dinamico.
Questo file può essere diverso ogni volta che viene eseguito a seconda di cosa c'è nel database.
Quindi, quello che effettivamente facciamo è definire un modello o un modello per ciò che vogliamo che è
per ogni roba di cane per ognuno di noi che vogliamo creare un alleato dove faremo il nome in grassetto o forte
come la razza proprio come testo normale
Quindi è così che finiamo con questo per ogni cane nel database
che recuperiamo, passeremo e creeremo un singolo alleato con il nome in grassetto che non è in grassetto.
Quindi lascia perdere.
Riassumiamo ora.
Quindi abbiamo il nostro codice che crea il server proprio qui.
Tutto questo è l'unico codice responsabile della creazione del nostro server.
Abbiamo qualche codice di installazione non importa.
Anche alcuni codici di database non sono importanti.
E poi questi due percorsi e quelli contano molto.
Quindi questo è il modo in cui otteniamo codice diverso e file diversi a seconda del fatto che tu sei tutto ciò che chiediamo di
fare una richiesta di barrare man mano che riceve la richiesta.
Riceviamo un file a casa, facciamo una richiesta per tagliare i cani e un po 'di più succede dietro le quinte.
Trova tutti i cani nel database e quindi esegue il rendering dei file dei cani.
Ma il file dei cani è dinamico perché contiene un mucchio di cani e per ciascuno.
È un alleato.
Quindi se avessimo 10000 cani nel database avremmo finito con 10000 alleati.
E l'ultimo punto che voglio fare è che qui abbiamo un editor di testo che ho un terminale in
cui sto eseguendo il server e poi sto andando nel browser e visitando quella pagina web facendo una richiesta.
Questi sono i tre strumenti di cui abbiamo bisogno.
cui scriviamo il codice al terminale o da qualche parte dove possiamo avviare il server e farlo ascoltare.
Quindi queste tre cose sono l'editor di testo in
E infine un browser in cui possiamo effettivamente andare a fare richieste.
Quindi non dobbiamo usare un browser Potremmo usare il postino ma nessuno usa il postino per interagire effettivamente
con la nostra pagina web nei prossimi video quando iniziamo a scrivere le nostre applicazioni web.
Avremo quei tre stessi strumenti.
Quindi avremo un editor di testo un browser e un terminale o da qualche parte per eseguire il server.