‫Kursleiter: In der letzten
‫Vorlesung haben wir also Mongoose-Schemas und -Modelle kennengelernt
‫und lassen uns nun ein sehr
‫einfaches Schema und Modell für unsere Anwendung implementieren.
‫Und jetzt machen wir das gleich hier
‫auf unserem Server. js-Datei.
‫Später verschieben wir
‫das natürlich in eine andere Datei.
‫Bei Mongoose dreht sich alles um Modelle, und ein
‫Modell ist wie eine Blaupause,
‫die wir verwenden, um Dokumente zu erstellen.
‫Es ist also ein bisschen wie mit
‫Klassen in JavaScript, die wir auch
‫als Blaupausen verwenden, um daraus Objekte zu erstellen, oder?
‫Wir erstellen also wieder ein Modell in
‫Mongoose, um damit Dokumente zu erstellen
‫und diese Dokumente auch abzufragen, zu aktualisieren und zu löschen.
‫Um jeden der CRUD-Vorgänge, also Erstellen, Lesen, Aktualisieren
‫und Löschen, auszuführen, benötigen wir
‫im Grunde ein Mongoose-Modell, und um ein Modell
‫zu erstellen, benötigen wir tatsächlich ein Schema.
‫Wir erstellen also tatsächlich Modelle
‫aus dem Mongoose-Schema, genau
‫wie wir es im letzten Video gelernt
‫haben, und verwenden das Schema, um unsere Daten zu
‫beschreiben, Standardwerte festzulegen, die Daten zu validieren und vieles mehr.
‫Genau wie Sie jetzt sehen
‫werden, denn jetzt werden wir tatsächlich damit
‫beginnen, ein sehr einfaches Schema für unsere Touren zu erstellen.
‫Sagen wir, tourSchema ist ein
‫neuer Mungo. Schema.
‫Fügen Sie hier hinzu, dass wir unser Schema tatsächlich als Objekt übergeben.
‫Okay, wir können dann auch einige Optionen in das Schema
‫übernehmen, aber das überlasse ich einem zukünftigen Video, in
‫dem wir diese Funktion tatsächlich brauchen.
‫Erinnern Sie sich also an die Tourdokumente, die
‫wir im letzten Abschnitt erstellt haben,
‫als wir anfingen, Mongoose DB zu erkunden?
‫Also haben wir ihnen
‫immer einen Namen, eine Bewertung und einen
‫Preis gegeben, richtig, und nun wiederholen wir
‫das hier, indem wir name sagen und dann beschreiben,
‫welche Art von Daten wir hinter dem Namen haben
‫wollen, und wir wollen, dass es eine Zeichenfolge ist.
‫Mongoose verwendet also tatsächlich
‫die nativen JavaScript-Datentypen, und hier können wir "String"
‫sagen oder nach der Bewertung sagen, dass wir eine
‫Zahl und dasselbe wie den Preis wollen.
‫Es sollte auch eine Zahl sein, oder?
‫Dies ist also die einfachste Art, unsere Daten zu beschreiben.
‫Wir haben also einen Namen, eine Bewertung und
‫einen Preis, und wir haben
‫den Datentyp angegeben, den wir für jedes dieser Felder erwarten.
‫Dies ist wiederum die
‫einfachste Art, ein Schema zu beschreiben, aber wir
‫können noch einen Schritt weiter gehen, indem
‫wir für jedes Feld oder nur für
‫ein bestimmtes Feld sogenannte Schematypoptionen definieren.
‫Beginnen wir also hier mit dem
‫Namen, und anstatt
‫ihn nur als String anzugeben, übergeben wir tatsächlich ein anderes Objekt.
‫Und jetzt sagen wir, dass der Typ String
‫sein soll, aber wir
‫können jetzt ein paar weitere Optionen definieren, okay?
‫Zum Beispiel können wir sagen, dass dieses Feld erforderlich ist, und
‫setzen
‫die erforderliche Eigenschaft hier einfach auf true, in Ordnung?
‫Dieses Objekt hier sind also die Schematypoptionen, die für verschiedene
‫Typen unterschiedlich sein können, zum Beispiel
‫hat der Zahlentyp einige
‫andere Schemaoptionen als der String hier, aber
‫viele von ihnen sind auch ähnlich.
‫Also zum Beispiel das erforderliche, wir können
‫es auch für die Nummer verwenden, und das machen wir hier.
‫Also der Typ, wir wollen immer noch, dass
‫es eine Zahl ist, und wir wollen auch, dass es erforderlich ist, okay?
‫Jetzt können wir hier im erforderlichen
‫Feld den Fehler angeben, der angezeigt werden soll,
‫wenn dieses Feld fehlt.
‫Um dies zu tun,
‫müssen wir nur ein Array übergeben, und das erste ist wahr.
‫Das erste Element ist also wahr und
‫das zweite ist die Fehlerzeichenfolge.
‫Sagen wir, eine Tour muss einen Namen haben, und dann
‫machen wir dasselbe.
‫Die Tour muss einen Preis haben, okay?
‫Dann können wir auch Standardwerte
‫setzen und das machen wir hier für die Bewertung.
‫Ich werde hier noch
‫einmal einige Schematypoptionen angeben, die nicht obligatorisch sind. Es
‫reicht also aus, den Typ hier
‫einfach so zu definieren, wie wir es getan
‫haben, aber wenn Sie mehr Funktionen
‫wünschen, müssen wir zumindest das Schema angeben type options-Objekt.
‫Okay, und dann müssen wir den Typ erneut angeben, der Zahl ist, und als
‫Standard möchte ich, dass er 4 ist. 5.
‫Wenn wir also jetzt ein neues Tourdokument
‫mit diesem Schema erstellen und die Bewertung nicht angeben,
‫wird es automatisch auf 4 gesetzt. 5, in Ordnung?
‫Und zum Schluss versuchen wir es hier mit einem anderen,
‫das heißt, der Name sollte eindeutig sein.
‫Also, einzigartig und auf "true" setzen, und
‫so können wir jetzt
‫zwei Tourdokumente mit demselben Namen haben, in Ordnung?
‫Das ist also unser sehr grundlegendes
‫Schema, lassen Sie uns nun
‫weitermachen und tatsächlich ein Modell daraus erstellen, in Ordnung?
‫Und das
‫ist ganz einfach, wir erstellen einfach eine Variable
‫namens Tour und dann Mungo. model, dann der Name
‫des Modells, hier Tour mit einem großen T,
‫in Ordnung.
‫Und das ist nur eine
‫Art Konvention in der Programmierung, bei Modellnamen
‫und Variablen immer Großbuchstaben zu verwenden.
‫Hier ist es also dasselbe, daher habe ich
‫diese Tourvariable auch hier mit einem großen T erstellt, nur damit wir
‫wissen, dass wir es hier mit einem Modell zu tun haben.
‫In Ordnung, also der
‫Name des Modells und dann das Schema, und das war's.
‫Also haben wir einfach so eine Tour
‫aus dem Schema erstellt, das wir hier am Anfang erstellt haben.
‫Alles klar, und im
‫nächsten Video werden wir dann dieses
‫Modell hier verwenden, um unser allererstes Tourdokument zu erstellen, in Ordnung?
‫Also nur eine Zusammenfassung hier, wir haben neuen Mungo verwendet. Schema hier, um
‫ein Schema für unsere Daten anzugeben.
‫Also, im Grunde beschreiben und auch etwas validieren.
‫Dies ist zum Beispiel hier
‫erforderlich, dies ist eigentlich ein sogenannter Validator, da
‫er zur Validierung unserer Daten verwendet wird.
‫In diesem Fall einfach, um zu überprüfen,
‫ob der Name tatsächlich vorhanden ist.
‫Und es gibt viele Validatoren in Mongoose,
‫und wir können sogar unsere eigenen erstellen,
‫und natürlich werden wir etwas
‫später noch einmal darüber sprechen, sobald wir diese Funktionen tatsächlich benötigen.
‫Wie auch immer, lassen Sie uns jetzt
‫schnell weitermachen, um endlich das soeben
‫erstellte Modell zu verwenden.