‫Istruttore maschio: Ehi, ecco!
‫Quindi ora impariamo come leggere i documenti con Mongoose per implementare
‫o ottenere il tour e ottenere tutti i gestori del percorso
‫del tour.
‫E a partire dal gestore getAllTours.
‫Quindi, prima di tutto, eliminiamo questo pezzo di codice qui.
‫E ora
‫quello che faremo per ottenere tutti i
‫tour dal database è usare Tour.
‫Quindi di nuovo il modello.
‫Alla fine, usiamo il metodo find.
‫Tutto bene.
‫Quindi ricorda dall'intersezione MongoDB, dove quando
‫volevamo interrogare tutti i documenti,
‫usavamo semplicemente find, ok?
‫E quindi qui, è lo stesso identico metodo.
‫E ancora, quando non ci passiamo nulla, proprio
‫come stiamo facendo
‫qui, allora restituirà tutti i
‫documenti in quella raccolta, ok?
‫Quindi in questo caso, ovviamente, nella collezione del tour.
‫Ora, proprio come prima, questo restituirà una promessa
‫che aspetteremo.
‫E poiché vogliamo
‫aspettare, dobbiamo rendere questa funzione asincrona.
‫Quindi asincrono.
‫Quindi qui possiamo aspettare e salvare il risultato in tour.
‫Tutto bene.
‫Ed è proprio così.
‫Quindi, liberiamoci di questi commenti qui.
‫Inoltre, non vogliamo la proprietà requireAt.
‫Quindi era solo per i test prima.
‫E quindi, sì, penso che sia così.
‫Ecco come otteniamo tutti i
‫tour dalla collezione Tour.
‫Quindi usando find, quindi aspettando quel risultato
‫e poi inviandolo qui.
‫Quindi ricorda che abbiamo questa proprietà dei dati
‫qui per incapsulare sostanzialmente i tour.
‫E poi inviamo anche questa proprietà qui, che
‫misura semplicemente il numero di risultati che
‫sono nei tour, va bene.
‫Bene?
‫Perché ovviamente, questo metodo di ricerca qui
‫restituirà un array di tutti questi documenti e
‫li convertirà anche molto bene
‫in oggetti JavaScript, ok?
‫Quindi questa funzione qui, questo metodo di ricerca,
‫fa davvero tutto il lavoro per noi.
‫Ora, proprio come
‫prima, un altro passaggio prima di poterlo effettivamente provare,
‫ovvero avvolgere tutto questo qui nel blocco try
‫e quindi rilevare eventuali potenziali errori.
‫Ora, in
‫questo caso, non ci saranno errori di convalida come prima.
‫Ma inviamo ancora un errore qui, in questo
‫caso, e rendiamolo un 404.
‫E non ha molta importanza a questo punto perché,
‫ancora una volta, implementeremo una migliore
‫gestione degli errori qui
‫nella prossima, o in una delle prossime, sezioni.
‫Tutto ok?
‫Quindi impostiamolo qui allo stato: 'fail' e
‫il messaggio a qualsiasi errore che potremmo ottenere qui.
‫Bene.
‫Quindi, proviamolo ora.
‫È questo, Ottieni tutti i tour.
‫E, sì, funziona.
‫Quindi qui abbiamo l'array dei tre tour che
‫abbiamo attualmente nel nostro database.
‫Perfetto.
‫Quindi, ora implementiamo il gestore getTour.
‫Quindi scriviamo il prossimo che abbiamo qui.
‫E liberiamoci di questo codice e
‫di questo codice.
‫Tutto bene.
‫E questo in realtà funzionerà in modo molto simile.
‫Quindi sto ancora facendo questo tentativo di cattura qui.
‫Quindi errore, come questo.
‫Perché stiamo ancora usando asincrono attendono in questo.
‫Quindi asincrono.
‫Perché ora per trovare un
‫tour, stiamo ancora aspettando il tour. trovare.
‫Ma non sarà solo
‫find, ma useremo findById, va bene.
‫Quindi findById, ma da dove viene effettivamente quell'ID?
‫Ricordati che?
‫Allora diamo un'occhiata al percorso.
‫Quindi tornando qui a Postman,
‫è così che chiamiamo questo punto finale,
‫oh, in realtà mettiamo già un ID più reale qui.
‫Quindi, per esempio,
‫questo di The Park Camper.
‫E quindi la nostra richiesta potrebbe provenire da un percorso come questo.
‫E quindi qui, abbiamo questo
‫parametro ID proprio nel nostro percorso, giusto?
‫Quindi diamo un'occhiata al nostro router qui.
‫E quindi ricorda che questo è il modo
‫in cui lo specifichiamo, l'ID nell'URL.
‫Quindi questo ID farà parte della richiesta ovviamente.
‫E quindi come otteniamo effettivamente l'accesso a quell'ID qui
‫e a questo gestore?
‫Bene, noi richiediamo. parametri, id.
‫Ed è
‫ID perché è quello che abbiamo chiamato questa variabile qui, giusto?
‫Se era il nome qui,
‫allora qui avevamo req. parametri. nome, giusto?
‫Ricordati che?
‫E ora, salviamolo per il tour.
‫Adesso va bene.
‫Allora riprendiamo questo codice qui.
‫Copialo qui.
‫E poi anche questo per il blocco degli errori.
‫E non preoccuparti, ti spiegherò questa funzione qui
‫tra un secondo.
‫Voglio solo finire questo codice qui prima.
‫Quindi questo pezzo di codice qui sarà esattamente lo
‫stesso per questo blocco catch.
‫Dagli un salvataggio
‫ora, così non avremo errori qui da eslint.
‫Ora su questo metodo di ricerca
‫ID qui, beh, ricorda come qui abbiamo appena usato find, ok?
‫Quindi trovare è trovare tutti i documenti.
‫E poi abbiamo
‫anche findOne per trovare un solo documento, ok?
‫E quindi questo findById è in realtà solo una scorciatoia,
‫quindi una funzione di supporto
‫per, fammi scrivere qui come
‫commento, per scrivere
‫findOne, e poi con l'oggetto filtro,
‫che è esattamente come
‫abbiamo imparato nell'intersezione MongoDB.
‫Quindi abbiamo il campo ID.
‫E poi potremmo impostarlo su req. parametri. ID.
‫Quindi questo qui funzionerebbe esattamente allo stesso modo di questo, ok?
‫Quindi _id, perché questo è l'aspetto dell'ID.
‫Quindi MongoDB si chiama _id.
‫E potremmo ovviamente interrogare per quel campo, giusto?
‫Abbiamo fatto esattamente questo nell'ultima sezione.
‫Quindi abbiamo specificato questo oggetto filtro qui, quindi
‫la proprietà che stiamo cercando
‫e quindi il valore che vogliamo cercare.
‫Quindi esattamente lo stesso di nuovo, come abbiamo fatto nell'ultima sezione.
‫E questo metodo
‫findOne qui restituirà solo uno dei documenti.
‫Ora questo findById, come ho
‫detto prima, è semplicemente una scorciatoia per doverlo scrivere.
‫Quindi dietro le quinte, farà esattamente questo.
‫Ma Mongoose vuole semplicemente semplificarci la vita.
‫E quindi, ci dà accesso a un metodo
‫più semplice chiamato
‫findById, che si aspetta semplicemente l'ID che stiamo cercando.
‫Tutto ok?
‫Quindi lascia che lo lasci qui, solo come riferimento.
‫E così ora, questo funzionerebbe già.
‫Quindi, diamo un'occhiata a questo.
‫Quindi abbiamo già inserito l'ID di questo tour.
‫Penso che fosse questo Park Camper.
‫Quindi ac2.
‫E ac2, dovrebbe essere The Park Camper, e
‫in effetti lo è.
‫Grande.
‫E questo è il modo più semplice per
‫trovare o interrogare documenti dal database.
‫C'è molto altro che possiamo fare con le query, e lo
‫faremo una volta
‫che inizieremo a implementare qualcosa come il filtraggio,
‫l'ordinamento o l'impaginazione, e tutte quelle cose
‫buone un po' più avanti in questa sezione, quindi in un
‫paio di video da adesso.
‫A questo
‫punto, tuttavia, è sufficiente restituire tutti i documenti qui in questo
‫gestore di rotta.
‫E poi qui, semplicemente quello per l'ID corrispondente.
‫E ora
‫funziona, quindi passiamo al prossimo.