‫Männlicher Ausbilder: Hey, da!
‫Lassen Sie uns nun lernen, wie Sie mit Mongoose Dokumente lesen, um
‫Tour zu implementieren oder zu erhalten und alle Routenhandler der Tour
‫zu erhalten.
‫Und beginnend mit dem getAllTours-Handler.
‫Lassen Sie uns also zuerst diesen Code hier löschen.
‫Um
‫alle Touren aus der Datenbank abzurufen,
‫verwenden wir jetzt Tour.
‫Also nochmal das Modell.
‫Am Ende verwenden wir dort die Find-Methode.
‫Gut.
‫Erinnern Sie sich also an die MongoDB-Kreuzung, wo
‫wir, als wir alle Dokumente abfragen wollten,
‫einfach find verwendet haben, okay?
‫Und hier ist es genau die gleiche Methode.
‫Und wieder, wenn wir nichts weitergeben, also
‫genau wie hier,
‫dann werden alle Dokumente in
‫dieser Sammlung zurückgegeben, okay?
‫Also in diesem Fall natürlich in der Toursammlung.
‫Nach wie vor wird dies ein Versprechen zurückgeben, auf das
‫wir warten werden.
‫Und da wir warten wollen,
‫müssen wir dies zu einer asynchronen Funktion machen.
‫Also asynchron.
‫Dann können wir hier abwarten und das Ergebnis in Touren speichern.
‫Gut.
‫Und das ist es tatsächlich.
‫Also, lass uns diese Kommentare hier loswerden.
‫Wir wollen auch nicht die angeforderteAt-Eigenschaft.
‫Also das war vorher nur zum testen.
‫Und so, ja, ich denke, das ist es.
‫So erhalten wir also alle
‫Touren aus der Tour-Kollektion.
‫Verwenden Sie also find, dann warten Sie auf dieses
‫Ergebnis und senden es dann hierher.
‫Denken Sie also daran, dass wir diese Dateneigenschaft hier
‫haben, um die Touren grundsätzlich zu umhüllen.
‫Und dann senden wir auch diese Eigenschaft hierher, die
‫einfach die Anzahl der Ergebnisse misst, die in
‫den Touren enthalten sind, in Ordnung.
‫Okay?
‫Denn natürlich wird diese find-Methode hier
‫ein Array all dieser Dokumente zurückgeben und
‫sie auch sehr schön in
‫JavaScript-Objekte umwandeln, okay?
‫Diese Funktion hier, diese Find-Methode, erledigt also
‫wirklich die ganze Arbeit für uns.
‫Nun, wie zuvor,
‫noch ein Schritt, bevor wir dies tatsächlich ausprobieren können,
‫nämlich, all dies hier in den try-Block zu
‫packen und dann mögliche Fehler abzufangen.
‫In
‫diesem Fall wird es keine Validierungsfehler wie zuvor geben.
‫Aber senden wir in diesem Fall immer noch einen Fehler und
‫machen wir es einfach zu einem 404.
‫Und es ist an dieser Stelle nicht so wichtig,
‫denn auch hier werden wir im
‫nächsten oder in
‫einem der nächsten Abschnitte eine bessere Fehlerbehandlung implementieren.
‫Gut?
‫Also setzen wir es hier einfach auf den Status: 'fail'
‫und die Meldung auf jeden Fehler, den wir hier erhalten könnten.
‫Okay.
‫Also, lass es uns jetzt testen.
‫Es ist dieser, Get All Tours.
‫Und ja, es funktioniert.
‫Hier haben wir also das Array der drei Touren,
‫die wir derzeit in unserer Datenbank haben.
‫Perfekt.
‫Als nächstes implementieren wir den getTour-Handler.
‫Schreiben wir also den nächsten, den wir hier haben.
‫Und lass uns diesen Code loswerden,
‫und diesen Code.
‫Gut.
‫Und dieser wird tatsächlich auf eine sehr ähnliche Weise funktionieren.
‫Also mache ich immer noch diesen Versuch hier zu fangen.
‫Also Fehler, so.
‫Da wir in diesem Fall immer noch async-Await verwenden.
‫Also asynchron.
‫Denn um jetzt eine Tour
‫zu finden, warten wir noch auf Tour. finden.
‫Aber es wird nicht nur
‫find sein, sondern wir verwenden findById, in Ordnung.
‫Also findById, aber woher kommt diese ID eigentlich?
‫Erinnere dich daran?
‫Werfen wir also einen Blick auf die Route.
‫Zurück zu Postman, so
‫nennen wir diesen Endpunkt, oh,
‫lass uns hier schon eine realere ID eingeben.
‫So zum Beispiel
‫dieser von The Park Camper.
‫Und so könnte unsere Anfrage von einer Route wie dieser kommen.
‫Und hier haben wir diesen
‫ID-Parameter direkt in unserer Route, oder?
‫Werfen wir also einen Blick auf unseren Router hier.
‫Denken Sie also daran, dass wir es so
‫angeben, die ID in der URL.
‫Diese ID wird also offensichtlich Teil der Anfrage sein.
‫Und wie erhalten wir hier tatsächlich Zugriff auf diese
‫ID und diesen Handler?
‫Nun, wir req. Parameter, id.
‫Und es
‫ist ID, weil wir diese Variable hier so genannt haben, richtig?
‫Wenn es hier Name war, dann
‫hatten wir hier req. Parameter. Namen, oder?
‫Erinnere dich daran?
‫Und jetzt speichern wir das für die Tour.
‫Nun gut.
‫Dann holen wir uns diesen Code hier zurück.
‫Kopieren Sie es hier.
‫Und dann auch noch dieser für den Fehlerblock.
‫Und keine Sorge, ich werde diese Funktion gleich
‫hier erklären.
‫Ich möchte nur diesen Code hier zuerst fertigstellen.
‫Dieser Code hier wird also für diesen
‫Catch-Block genau gleich sein.
‫Speichern Sie es
‫jetzt, damit wir hier keine Fehler von eslint erhalten.
‫Nun zu dieser Find-ID-Methode hier, nun, erinnern
‫Sie sich, wie wir hier oben gerade find verwendet haben, okay?
‫Suchen heißt also, alle Dokumente zu finden.
‫Und dann haben wir
‫auch findOne, um nur ein Dokument zu finden, okay?
‫Und so ist diese findById eigentlich nur eine Kurzform, also eine
‫Hilfsfunktion für, lass es mich hier
‫als Kommentar schreiben, für das
‫Schreiben von findOne,
‫und dann mit dem Filter-Objekt, das genau
‫so ist, wie wir es
‫in der MongoDB-Schnittlinie gelernt haben.
‫Wir haben also das ID-Feld.
‫Und dann könnten wir das auf req setzen. Parameter. Ich würde.
‫Das hier würde also genau so funktionieren, okay?
‫Also _id, denn so sieht die ID aus.
‫MongoDB heißt also _id.
‫Und wir könnten natürlich nach diesem Feld fragen, oder?
‫Genau das haben wir im letzten Abschnitt getan.
‫Also haben wir dieses Filterobjekt hier angegeben, dann die
‫Eigenschaft, nach der wir suchen, und
‫dann den Wert, nach dem wir suchen möchten.
‫Also wieder genau das gleiche wie im letzten Abschnitt.
‫Und diese findOne-Methode
‫hier gibt dann nur eines der Dokumente zurück.
‫Nun, diese findById ist, wie ich
‫bereits erwähnt habe, einfach eine Abkürzung dafür, dies schreiben zu müssen.
‫Hinter den Kulissen wird es genau das tun.
‫Aber Mongoose möchte unser Leben einfach einfacher machen.
‫Daher haben wir Zugriff auf eine
‫einfachere Methode namens
‫findById, die einfach die gesuchte ID erwartet.
‫Gut?
‫Lassen Sie mich das also hier als Referenz belassen.
‫Und so würde das jetzt eigentlich schon funktionieren.
‫Schauen wir uns das also an.
‫Also haben wir schon die ID dieser Tour gesetzt.
‫Ich glaube, es war dieser Park Camper.
‫Also ac2.
‫Und ac2, das sollte The Park Camper sein, und
‫das ist es auch.
‫Groß.
‫Und das ist der einfachste Weg, Dokumente aus
‫der Datenbank zu finden oder abzufragen.
‫Es gibt eine Menge mehr, was wir mit Abfragen tun können,
‫und wir werden
‫all das tun, sobald wir damit beginnen, etwas
‫wie Filtern, Sortieren oder Paginieren zu implementieren,
‫und all die guten Dinge etwas später in diesem Abschnitt, also
‫in ein paar Videos ab sofort.
‫An dieser
‫Stelle reicht es jedoch aus, einfach alle Dokumente hier in
‫diesem Route-Handler zurückzugeben.
‫Und dann hier einfach die für die passende ID.
‫Und das funktioniert
‫jetzt, und so gehen wir zum nächsten über.