OK bentornato.
È tempo che prendiamo ciò che abbiamo imparato su Mongo D. B e sulla mangusta e la aggiungiamo alla nostra applicazione
del campo in modo da poter aggiungere una certa persistenza dei dati.
Quindi i tre passaggi principali sono l'installazione e la configurazione di mangusta e quindi dobbiamo impostare il modello, lo
schema e il modello per il campeggio.
E poi dobbiamo usare il modello del campeggio invece dei nostri percorsi.
Prima di andare avanti voglio sottolineare che sto usando il V-2 del campo, quindi ho fatto un'altra copia
del V-1 e lavorerò all'interno di questo per i prossimi video.
E questo perché inizieremo a fare dei cambiamenti più grandi.
Alcuni file si muoveranno, ma voglio comunque che tu possa guardare il codice V-1.
Quindi V-2 e farò sicuramente sapere quando inizieremo a lavorare invece di v3.
Quindi vediamo cosa abbiamo per ora.
Corriamo dopo Sì.
E aggiorna.
OK.
abbiamo il problema dove non appena riavvio il server e i nuovi campeggi che aggiungiamo spariranno.
Quindi abbiamo il nostro campeggio, possiamo aggiungere un nuovo campeggio ma, naturalmente,
Quindi affrontiamo questo.
Apriamo tutto ciò di cui abbiamo bisogno, che in realtà è solo il file Jasc dell'app per ora.
E la prima cosa che vogliamo fare è installare mangusta.
In questo modo, NPM installa il cruscotto del mongoose e, mentre ciò accadrà, vogliamo assicurarci che il nostro processo sia in
esecuzione in background.
Man-God OK, ora è fatto e potremmo guardare il pacchetto.
Jason ricontrolla che qui abbiamo mangusta.
Eccoci.
Adesso è qui.
Avremo bisogno di mangimi salvarlo su una variabile chiamata mangusta
proprio così.
E una rapida nota a margine che vedremo molto spesso quando abbiamo un sacco di
dichiarazioni obbligatorie in cima è qualcosa del genere in cui possiamo effettivamente sbarazzarci delle dichiarazioni di Varsity e farlo
se abbiamo più dichiarazioni variabili di fila.
Possiamo separarli con virgole.
Eccoci.
E questo renderà una variabile chiamata espressione un'altra chiamata a parser del corpo e Mangusta
funzionerà allo stesso modo.
Non dobbiamo scrivere molto più e più volte.
E quello che vedrai anche a volte è che le persone li metteranno in fila così sembra.
E questo è davvero un aspetto delle preferenze personali.
Lascerò qui per ora solo per vederlo.
Ma lo vedrai in entrambe le direzioni.
Non ha alcun impatto sul modo in cui funziona il codice.
È solo un piccolo cambiamento stilistico.
OK, quindi salviamo ed eseguiamo Knode dopo che Jesus si è assicurato che non si verifichino errori.
Grande.
Ora quello che vogliamo fare è collegare la mangusta.
Quindi faremo mongoose connect e non abbiamo ancora un database nella nostra Mongar TV per questo, quindi
possiamo semplicemente crearne uno dinamicamente e dobbiamo connetterci alla barra dei due punti di Mongo DB barra slash localhost e quindi il
nome per un database che non esiste ancora.
Quindi chiamiamolo campo di Yelp proprio così e risparmia.
E questo creerà per noi il database del campo di Yelp invece di Mangu
D-B e possiamo testarlo solo se eseguiamo l'app senza problemi.
La prossima cosa che dobbiamo fare è impostare il nostro schema e lo farò qui.
Quindi aggiungo un piccolo commento qui.
Lo schema è impostato e questo file diventerà un po 'lungo e nel futuro video
lo rifaseremo.
Quindi questo non è il modo in cui lo faresti in una vera app di produzione.
Se avessi 10 diversi modelli e schemi diversi diventerebbe davvero pazzo molto veloce, specialmente se
avessi molti percorsi.
Quindi lo suddivideremo in file separati in seguito, ma per ora stiamo solo facendo uno schema.
Quindi chiamiamolo schema var campground e poi imposteremo quello uguale al nuovo schema di mangusta
per capitalizzarci.
E per ora un campeggio ha solo un nome che è una stringa e un'immagine.
e stiamo solo usando quello che abbiamo già qui e lo salveremo, quindi l'ultima cosa
che dobbiamo fare è compilarla in un modello che il campeggio var è uguale a quello di mongoose e poi di nuovo qui tra virgolette.
Questa è anche una stringa
E infine lo schema che è lo schema del campo del campo.
Okay, quindi quello che dovrebbe fare è renderci un modello ora che utilizza questo schema e ha un sacco di metodi su
di esso in modo che possiamo fare cose come trovare roba da campeggio.
E la prima cosa che vogliamo fare è aggiungere un semplice campeggio.
Quindi prendiamo uno di questi e faremo solo un accampamento creato per iniziare.
Così sembra.
una cosa temporanea, solo per assicurarci che le cose funzionino, lo elimineremo non appena lo proveremo.
E questa è solo
Così il campeggio crea e poi ricorda che passiamo nell'oggetto che vogliamo creare.
Ho intenzione di formattare questo un po 'più bello proprio come questo.
Quindi stiamo creando l'oggetto prima e poi abbiamo quella funzione di callback in seguito.
La prima cosa è l'errore e poi il secondo sarebbe il campeggio.
E faremo solo un semplice registro costante.
Quindi, se l'errore annulla quell'errore
di registro, altrimenti cancella il registro di recente creato.
Proprio così.
E poi nella prossima linea faremo cons. Ugh.
Campeggio.
OK.
Quindi sì, è un sacco di codice.
Ma quello che stiamo facendo
è creare un campeggio con questi dati e poi mi sono appena distanziato piuttosto che farlo su un'unica linea gigantesca.
L'ho distanziato in modo che abbiamo la funzione di callback che verrà eseguita una volta eseguita questa operazione.
Se ha successo o meno, abbiamo una funzione
di callback e stiamo elaborando l'errore gestendolo in modo equo.
Quindi stiamo solo stampando un errore.
E se non c'è un errore, stamperemo il campeggio.
Tutto ok.
Quindi quello che possiamo fare ora è testare questo solo eseguendo il nodo.
Eccoci.
Campeggio appena creato.
In modo che creare funzionasse.
Non c'è stato nessun errore stampato.
Quindi abbiamo capito e sembra immagine e nome.
E anche per verificare che possa aprire il Consiglio Mongo e possiamo fare uno spettacolo TBS.
Ecco il nostro nuovo database Joachim e possiamo usare la cam di Yelp proprio così.
E poi quello che possiamo fare è mostrare le collezioni e abbiamo campeggi che vengono
generati perché il nome del nostro modello Cingular è il campeggio e lo ha pluralizzato per noi.
E poi quello che possiamo fare è che i campeggi D-B sperano nei campeggi che trovano.
E qui andiamo in un campeggio a cui è stato assegnato automaticamente un nome e un'immagine.
Eccezionale.
Quindi usciamo e aggiungiamo un altro campeggio per sbarazzarci di questo.
E invece di Semin Creek faremo la collina di granito
e voglio solo che abbiamo alcuni dati di partenza con cui lavorare.
Quindi nominare l'immagine proprio così.
E quindi possiamo eseguire nuovamente questo salvataggio del nodo.
Sì, c'è il nostro secondo campeggio che abbiamo creato granito Hill e per ora basta.
La prossima cosa che vogliamo fare è sostituire tutto questo codice qui.
Possiamo sbarazzarci di tutto questo codice, ma vogliamo anche sostituire
tutto il codice in cui stiamo usando quel campo alla matrice piuttosto che usare un array hard coded.
Quello che faremo qui quando stiamo ricevendo tutti i campeggi e mostrandoli nella
lista di questa pagina qui andremo a recuperare tutti i campeggi dal database in modo che possiamo farlo per primi.
Ho intenzione di commentare questa battuta per ora.
Dobbiamo ottenere tutti i campeggi dal D-B e quindi vogliamo rendere quel file.
E il modo in cui otteniamo tutti i campeggi è con il campeggio e stiamo cercando tutto.
E poi abbiamo bisogno di una funzione di callback e prima prende l'errore e poi il
nostro parametro sarà chiamato campgrounds e controllerà sempre se c'è stato un errore in caso di errore.
E faremo solo un errore di registro costante.
Per ora avremo una migliore gestione degli errori in seguito dove stiamo effettivamente mostrando un messaggio a un utente.
Per ora lo stiamo solo stampando.
E poi qui
quello che faremo è fare un punto rosso come quello che abbiamo qui e possiamo davvero lasciarlo com'è.
aspettiamo che si chiamino campeggi.
E il motivo è che vogliamo ancora rendere il file dei campeggi e nel file dei campeggi Ci
La differenza è la fonte del campeggio non è
più la matrice che abbiamo avuto qui il campeggio è definito proprio qui.
Quindi rendiamolo un po 'più chiaro.
Chiamerò questo tutti i campeggi in questo modo.
E poi qui cambierò questo.
Tutti i campeggi in modo da poter vedere la connessione.
Quindi stiamo facendo un campeggio per trovare tutti i campeggi della collezione.
Al termine, esegui questo codice.
Il callback
Se c'è un errore, stampare l'errore.
Altrimenti prendi tutti i campeggi.
E 'appena tornato e li mando attraverso il campeggio che E. J. ha archiviato.
Ora se salviamo e
riavviamo il server e mi sbarazzerò di questo per ora commentato altrimenti finiremo con un'altra collina di granito nel nostro database.
che è esattamente quello che vogliamo.
Quindi ora inizieremo il server e aggiorneremo la pagina, vedremo solo due campeggi
Questi due sono entrambi nel database
e non abbiamo più a che fare con quell'array di campi che è difficile da codificare.
Questi saranno sempre nel database fino a quando non li elimineremo.
Ma almeno se il server si riavvia o abbiamo qualche problema lì continuano a persistere.
Quindi ora è focalizzato su come far funzionare tutto questo in modo che quando un utente aggiunge un nuovo campeggio funzioni.
E proprio ora abbiamo un piccolo problema.
Se digito semplicemente jibberish qui e premi invio, ricevo un errore.
Il campeggio non è definito e mi sta dicendo che
in realtà è la linea 54, che è proprio qui dove stiamo spingendo il nuovo campeggio nei campeggi.
Ma quel vassoio del campeggio non è definito perché l'abbiamo cancellato.
Era un molo e ci siamo sbarazzati di esso per farlo funzionare nel modo in cui lo vogliamo.
Non abbiamo più bisogno di questa linea.
E invece quello che vogliamo fare è creare un nuovo campeggio e salvarlo nel database.
Quindi questo rimarrà lo stesso dove abbiamo bisogno di prendere il nome e l'immagine
e questo rimarrà lo stesso anche dove stiamo facendo questo oggetto.
E poi quello che possiamo
fare è salvarlo nel database e possiamo crearlo con il campeggio che crea e quindi il
primo argomento è la nuova cosa che vogliamo creare, che abbiamo già memorizzato comodamente in un
oggetto chiamato nuovo campeggio, quindi possiamo passarlo e quindi abbiamo bisogno della funzione di callback proprio così.
E ricorda il nostro errore di due argomenti
e lo chiameremo appena creato proprio così e lo faremo se c'è un errore e se c'è un errore se c'è un
problema con i dati del modulo che l'utente inserisce allora dovremmo pensa a ciò che vogliamo realmente accadere.
in bianco o nome Campi vuoto o nome numero Campeon o qualunque esso sia.
E alla fine, ciò che faremo è rimandare di nuovo l'utente al modulo e mostrare loro un messaggio che dice qualcosa come foto Caffey
Ma possiamo mostrare loro un messaggio.
Per ora stiamo attaccando con
il nostro log alt costante e provato dell'errore e poi Altrimenti se ha funzionato, anche se abbiamo bisogno di fare è tornare ai campeggi proprio così.
Reindirizzare nuovamente ai campeggi.
Eccoci.
E poi ripercorrerà questo
percorso fino a qui che troverai tutti i campeggi incluso quello nuovo di zecca che è stato appena aggiunto e poi ci mostrerà di nuovo questo modello.
Quindi proviamo.
Ho intenzione di riavviare il server e sto anche andando a prendere un'immagine da usare e userò questo qui.
Copia quello di Aro, quindi apro l'app qui e aggiorna
OK, quindi proveremo ad aggiungere un nuovo campeggio.
E questo sarà chiamato il luogo di riposo di Cloud che in hit submit e sembra che abbia funzionato.
Torni qui
Non abbiamo errori.
E se aggiorniamo la pagina continua a essere visualizzata e se riavviamo il server questo è il vero test.
È ancora lì.
OK.
Quindi abbiamo introdotto la persistenza dei dati nei nostri campeggi.
Il server può interrompere il potere che può uscire qualsiasi calamità può verificarsi.
E i nostri dati continueranno a persistere.
Quindi permettimi di tornare al cloud 9 e farò un breve riassunto di ciò che abbiamo fatto.
Quindi abbiamo aggiunto mangusta qui.
un nome e un'immagine e questo è tutto.
Ci siamo collegati a un database del campo di annunci che non esisteva al momento in cui abbiamo eseguito questo codice,
ma ogni volta che utilizzava il database del campo inizialmente creato e quindi abbiamo impostato lo schema del campeggio che per ora ha
Ma se vogliamo aggiungere più cose.
È molto facile e flessibile
E poi questa infame linea in
cui stiamo compilando lo schema in un modello in cui stiamo prendendo questo progetto per quello che dovrebbe essere un campeggio e lo stiamo trasformando in
un codice che possiamo usare che ha un sacco di metodi tra cui trovare che è importante
dove stiamo recuperando tutti i campeggi e mostrandoli tutti.
Lo stiamo usando all'interno del nostro campeggio slash per arrivare
E poi crea anche grandi qui dove stiamo prendendo i dati dal modulo.
E questo è un po 'di confusione perché ci sono così tante variabili.
Stiamo prendendo il nome e il corpo dal modulo.
Stiamo creando un nuovo oggetto come passaggio separato.
Potremmo aver appena preso questo codice e incollato qui.
Ma mi piace fare un nuovo molto bene che mostra solo quello che stiamo facendo.
volta eseguita la creazione, indipendentemente dal fatto che abbia successo o meno.
Quindi il nuovo campeggio è un nome di oggetto un'immagine proveniente dal modulo di quella che creiamo con quella funzione di callback di copertina che verrà eseguita una
E poi gestiamo l'errore qui.
In questo momento abbiamo una gestione degli errori molto semplice.
Ora non stai veramente gestendo È solo errore riconoscere dove stiamo
solo stampando l'errore e poi altrimenti se funziona, torniamo alla pagina dei campeggi che ci riporta qui.
Va bene, ora abbiamo la mangusta connessa.
Abbiamo il nostro database istituito.
quando aggiungiamo commenti e altre cose divertenti.
Continueremo a utilizzarlo e presto vedremo un altro modello e un altro schema per gli utenti quando avremo l'autenticazione dell'utente per i commenti