1
00:00:03,710 --> 00:00:10,380
Nun, da wir einen schnellen Überblick über Mongoose ODM hatten und

2
00:00:10,380 --> 00:00:16,710
wie Mongoose Schemas bringt, um die Dokumente zu strukturieren, die wir in unserer MongoDB speichern,

3
00:00:16,710 --> 00:00:19,830
schauen wir uns an, wie wir

4
00:00:19,830 --> 00:00:27,000
das Mongoose Knotenmodul nutzen und es dann in unsere Knotenanwendung integrieren.

5
00:00:27,000 --> 00:00:31,065
Dann verwenden Sie Mongoose, um mit

6
00:00:31,065 --> 00:00:35,760
unserem MongoDB-Server zu kommunizieren und dann

7
00:00:35,760 --> 00:00:41,355
Dokumente mit Strukturinformationen in den Dokumenten zu speichern und abzurufen.

8
00:00:41,355 --> 00:00:44,830
Um mit dieser Übung zu beginnen,

9
00:00:44,830 --> 00:00:48,080
wechseln Sie zu einem geeigneten Speicherort auf Ihrem Computer.

10
00:00:48,080 --> 00:00:52,760
Also, hier bin ich im Node JS-Ordner, in

11
00:00:52,760 --> 00:00:57,020
dem ich alle Beispiele aus diesem Kurs gespeichert habe und dann werde ich

12
00:00:57,020 --> 00:01:02,210
einen neuen Ordner namens Knoten Mongoose erstellen.

13
00:01:02,210 --> 00:01:12,900
Dies ist, wo wir die Knotenanwendung mit Mongoose als nächstes erstellen.

14
00:01:12,900 --> 00:01:19,080
Wechseln Sie im Terminal oder im Befehlsfenster zum Knoten Mongoose Ordner und initialisieren Sie dort eine Knotenanwendung.

15
00:01:19,080 --> 00:01:22,385
Also, lassen Sie mich npm init eingeben und dann

16
00:01:22,385 --> 00:01:26,359
die Knotenanwendung initialisieren und dann würde ich die Anwendung

17
00:01:26,359 --> 00:01:34,174
als Node-mongoose benennen und der Einstiegspunkt ist index.js git history,

18
00:01:34,174 --> 00:01:42,590
Schlüsselwörter, Autor und Lizenz und wir werden sagen, okay.

19
00:01:42,590 --> 00:01:49,574
Sobald Ihre Knotenpackage.json-Datei erstellt wurde,

20
00:01:49,574 --> 00:01:54,500
öffnen Sie das Projekt im Texteditor Ihrer Wahl.

21
00:01:54,500 --> 00:02:02,809
Also, hier habe ich mein Projekt in Visual Studio geöffnet.

22
00:02:02,809 --> 00:02:05,915
Lassen Sie mich in die package.json-Datei gehen und fügen Sie dann

23
00:02:05,915 --> 00:02:14,750
das Startskript hinzu und dann

24
00:02:14,750 --> 00:02:24,160
sagen wir, Startknotenindex wie üblich, wenn wir mit einer neuen Knotenanwendung beginnen.

25
00:02:24,160 --> 00:02:29,945
Dann, wenn wir zum Terminal oder zum Befehlsfenster gehen, installieren wir Mongoose. Geben

26
00:02:29,945 --> 00:02:37,290
Sie also an der Eingabeaufforderung npm install Mongoose ein, speichern Sie.

27
00:02:39,470 --> 00:02:45,570
Was im Moment Mongoose 5.1.7 ist.

28
00:02:45,570 --> 00:02:49,760
Also, das sind die Versionen, die ich in diesem Kurs verwenden werde.

29
00:02:49,760 --> 00:02:54,920
Dann gehe ich zu meiner Bewerbung im Editor.

30
00:02:54,920 --> 00:03:01,430
Lassen Sie mich einen Unterordner im Projekt erstellen, der als Models bezeichnet wird.

31
00:03:01,430 --> 00:03:10,230
Also, hier werde ich alle Modelle für meine Anwendung speichern.

32
00:03:10,230 --> 00:03:15,170
Lassen Sie mich im Models-Ordner eine neue Datei namens dishes.js erstellen.

33
00:03:15,170 --> 00:03:19,535
Also, hier werde ich das Schema und das Modell

34
00:03:19,535 --> 00:03:24,680
für mein Geschirr Dokument erstellen, das ich speichern werde,

35
00:03:24,680 --> 00:03:29,770
die Geschirr Sammlung, die die Dokumente für jedes Geschirr speichert.

36
00:03:29,770 --> 00:03:36,730
Also, genau da, lass mich zuerst Mongoose importieren.

37
00:03:39,320 --> 00:03:47,880
Also, wir benötigen Mongoose in dieser Datei und dann sagen

38
00:03:47,880 --> 00:03:57,940
const Schema ist Mongoose Schema.

39
00:03:59,420 --> 00:04:03,510
Dann erstellen wir das Schema hier.

40
00:04:03,510 --> 00:04:13,845
Also, wir werden sagen const DishSchema neues Schema.

41
00:04:13,845 --> 00:04:19,590
Also, hier definiere ich das Schema für mein Gericht.

42
00:04:20,830 --> 00:04:27,270
Lassen Sie mich innerhalb dieses Schemas die verschiedenen Werte definieren.

43
00:04:27,270 --> 00:04:29,830
Also, ich werde Name sagen,

44
00:04:29,890 --> 00:04:34,405
was der Typ String ist.

45
00:04:34,405 --> 00:04:41,480
Also, das ist der Schema-Typ und dann würde ich dies bei Bedarf deklarieren.

46
00:04:41,480 --> 00:04:43,460
Also, ich sage wahr.

47
00:04:43,460 --> 00:04:52,790
Also, jedes Dokument wird dort den Namen als Pflichtfeld haben und dann

48
00:04:52,790 --> 00:04:57,185
werde ich dies auch als eindeutig deklarieren, was bedeutet, dass

49
00:04:57,185 --> 00:05:02,545
keine zwei Dokumente das gleiche Namensfeld haben sollten.

50
00:05:02,545 --> 00:05:08,230
Also, das ist das erste Feld in meinem Dokument.

51
00:05:10,190 --> 00:05:19,440
Dann werden wir auch ein anderes Feld namens, Beschreibung.

52
00:05:19,440 --> 00:05:29,205
Die Beschreibung ist vom Typ string und erfordert true.

53
00:05:29,205 --> 00:05:35,165
Außerdem können wir Mongoose automatisch

54
00:05:35,165 --> 00:05:41,639
Zeitstempel in unser Modell einfügen lassen.

55
00:05:41,639 --> 00:05:50,340
Also, genau dort können wir einfach die Fahne Zeitstempel aufstellen: true.

56
00:05:50,340 --> 00:05:55,810
Dies fügt automatisch die erstellten und aktualisierten bei,

57
00:05:55,810 --> 00:06:01,340
zwei Zeitstempel in jedes Dokument, das

58
00:06:01,340 --> 00:06:07,235
in unserer Anwendung gespeichert ist, hinzu und aktualisiert diese Werte automatisch.

59
00:06:07,235 --> 00:06:11,330
Wann immer wir das Dokument aktualisieren und die erstellte bei wird automatisch

60
00:06:11,330 --> 00:06:15,390
initialisiert werden, wenn das Dokument zum ersten Ersteller dieser Zeit ist.

61
00:06:15,390 --> 00:06:22,680
Danach werden wir var Gerichte sagen.

62
00:06:22,680 --> 00:06:24,549
Also, angesichts des Schemas,

63
00:06:24,549 --> 00:06:29,605
jetzt werden wir das Modell aus diesem Schema zu konstruieren.

64
00:06:29,605 --> 00:06:35,215
Also, wir werden sagen Mongoose Modell und Gericht,

65
00:06:35,215 --> 00:06:43,570
und dies wird das Gericht Schema verwenden, das wir gerade früher erklärt haben.

66
00:06:43,570 --> 00:06:48,590
Dann werden wir

67
00:06:48,590 --> 00:06:55,725
dieses Modell aus dieser Datei hier exportieren.

68
00:06:55,725 --> 00:06:58,410
Also, wir werden sagen Modul Export Gerichte.

69
00:06:58,410 --> 00:07:00,545
Also, jetzt haben wir

70
00:07:00,545 --> 00:07:05,780
das Mongoose-Schema und das entsprechende Modell konstruiert und das Modell wird jetzt von hier exportiert.

71
00:07:05,780 --> 00:07:13,345
Dies kann also in unsere Anwendung importiert und verwendet werden.

72
00:07:13,345 --> 00:07:20,415
Lassen Sie mich also in unserem Projektordner eine neue Datei namens index.js erstellen.

73
00:07:20,415 --> 00:07:23,265
In der Datei index.js,

74
00:07:23,265 --> 00:07:31,450
lassen Sie mich zuerst Mungo benötigen,

75
00:07:31,820 --> 00:07:34,900
und dann können wir sagen,

76
00:07:34,900 --> 00:07:44,970
const Gerichte erfordern Modelle Gerichte.

77
00:07:44,970 --> 00:07:49,210
Weil wir bereits das Dishes Modell in

78
00:07:49,210 --> 00:07:55,740
den Modellen Geschirr Datei dort erstellt haben und dann brauchen wir es hier.

79
00:07:55,740 --> 00:08:02,975
Nun, um die Verbindung zum Mongo-Server herzustellen,

80
00:08:02,975 --> 00:08:09,330
sagen wir const URL mongodb.

81
00:08:09,840 --> 00:08:17,110
Localhost 27017, ConFusion.

82
00:08:17,110 --> 00:08:25,760
Also, diese Datenbank ist diejenige, mit der wir von unserer Anwendung verbinden und

83
00:08:25,760 --> 00:08:35,125
dann können wir die Verbindung herstellen, indem wir sagen const connect Mongoose.

84
00:08:35,125 --> 00:08:38,195
Mongoose unterstützt diese Connect-Methode,

85
00:08:38,195 --> 00:08:41,695
die die URL als ersten Parameter verwendet.

86
00:08:41,695 --> 00:08:44,250
Also, wenn wir das festgestellt haben,

87
00:08:44,250 --> 00:08:49,470
dann sagen wir einfach verbinden dann.

88
00:08:49,470 --> 00:08:52,280
Beachten Sie, dass, da wir bereits Versprechen verwenden,

89
00:08:52,280 --> 00:08:57,680
wir können einfach sagen, connect dann und dann wird dies

90
00:08:57,680 --> 00:09:03,774
eine Funktion als Parameter nehmen

91
00:09:03,774 --> 00:09:10,175
und im Inneren können wir uns jetzt mit der Datenbank verbinden.

92
00:09:10,175 --> 00:09:13,550
Also jetzt, sobald diese Verbindung hergestellt ist,

93
00:09:13,550 --> 00:09:17,800
lassen Sie mich ein Konsolenprotokoll tun,

94
00:09:17,800 --> 00:09:26,060
das sagt, richtig mit dem Server verbunden ist,

95
00:09:26,100 --> 00:09:36,355
und hier kann ich ein neues Gericht erstellen, indem ich var

96
00:09:36,355 --> 00:09:45,560
new Dish und dann Dishes sage und innen hier kann ich ein Dokument angeben, so dass ich

97
00:09:45,560 --> 00:09:50,170
ein neues Gericht dieser Art und dann so hier in Ich werde

98
00:09:50,170 --> 00:09:55,510
die beiden Felder angeben, die erforderlich sind.

99
00:09:55,510 --> 00:09:57,920
Also werde ich Name,

100
00:10:07,950 --> 00:10:16,390
Beschreibung sagen und so würden Sie ein neues Gericht erstellen und dann, sobald wir

101
00:10:16,390 --> 00:10:24,910
ein neues Dish aus dem Modell erstellen, sagen wir einfach neues Dish save.

102
00:10:24,910 --> 00:10:29,760
Die Speichermethode wird dazu führen, dass dieser Dish-Wert

103
00:10:29,760 --> 00:10:35,060
gespeichert wird und dann, wie Sie erwarten, wird ein Versprechen zurückgeben und

104
00:10:35,060 --> 00:10:45,165
dann hier werden wir den Dish-Wert als Rückruf dort erhalten und dann

105
00:10:45,165 --> 00:10:54,940
kann ich einfach den Dish-Wert hier protokollieren und dann danach sagen

106
00:10:54,940 --> 00:11:00,915
wir Gerichte finden und so werden wir

107
00:11:00,915 --> 00:11:07,090
alle Gerichte und dann sagen exec.

108
00:11:07,090 --> 00:11:10,255
Die exec wird sicherstellen, dass dies

109
00:11:10,255 --> 00:11:15,250
ausgeführt wird und dass es ein Versprechen zurückgibt und so dass das Versprechen

110
00:11:15,250 --> 00:11:19,660
zurückgegeben wird, so dass es dann

111
00:11:19,660 --> 00:11:27,040
die Methode an die verbleibenden verketten kann.

112
00:11:27,040 --> 00:11:33,975
So sehen Sie, wie ich Versprechungen verwende und dann rufe ich die vorherige Methode auf, so dass diese

113
00:11:33,975 --> 00:11:41,395
alle Gerichte in meiner Datenbank findet,

114
00:11:41,395 --> 00:11:45,905
in der Dishes Sammlung und dann macht sie mir verfügbar.

115
00:11:45,905 --> 00:11:55,550
Also, wenn ich die Gerichte bekomme, dann kann ich einfach die Gerichte einloggen, nur um zu sehen, was

116
00:11:55,550 --> 00:11:58,790
zurückgegeben wird, und das sollte offensichtlich in diesem Stadium

117
00:11:58,790 --> 00:12:02,710
dieses einzige Gericht zurückgeben, das ich in

118
00:12:02,710 --> 00:12:10,940
meine Dishes Sammlung eingefügt habe und dann werden wir sagen

119
00:12:11,010 --> 00:12:15,550
zurückkehren Gerichte mit

120
00:12:15,550 --> 00:12:19,930
einem leeren JavaScript-Objekt entfernen , die alle Gerichte aus

121
00:12:19,930 --> 00:12:24,384
der Datenbank entfernen und

122
00:12:24,384 --> 00:12:31,790
Mungo Verbindung schließen, die die Verbindung zur Datenbank schließt.

123
00:12:35,040 --> 00:12:38,830
Und fangen Sie jeden Fehler an diesem Punkt.

124
00:12:38,830 --> 00:12:49,430
Also verwenden wir den Catch und dann das Konsolenprotokoll.

125
00:12:50,600 --> 00:12:57,820
Das war's. Also, was wir hier tun, ist, dass wir das neue dieses Gericht kreieren und dann

126
00:12:57,820 --> 00:13:04,255
retten wir das Gericht, dann finden wir alle Gerichte aus der Sammlung.

127
00:13:04,255 --> 00:13:06,740
Das war's. Wir verwenden hier Versprechen,

128
00:13:06,740 --> 00:13:10,435
also haben wir alle Höhlen hier drin angekettet. Das war's.

129
00:13:10,435 --> 00:13:15,595
Lassen Sie uns die Änderungen speichern und dann sehen, wie diese Anwendung ausgeführt wird.

130
00:13:15,595 --> 00:13:17,455
Gehen Sie in das Terminal, geben Sie

131
00:13:17,455 --> 00:13:21,505
an der Eingabeaufforderung npm start ein und Sie werden

132
00:13:21,505 --> 00:13:25,735
sehen, dass meine Knotenanwendung ausgeführt wird und dann

133
00:13:25,735 --> 00:13:33,110
zuerst zeigt, dass es dieses spezielle Dish erstellt hat.

134
00:13:33,110 --> 00:13:37,285
Beachten Sie insbesondere, dass diese beiden Felder, die

135
00:13:37,285 --> 00:13:39,365
bei aktualisiert und erstellt wurden,

136
00:13:39,365 --> 00:13:43,465
diese beiden Zeitstempel wurden

137
00:13:43,465 --> 00:13:47,790
hier automatisch in das Dish hinzugefügt und so können Sie sehen, dass die erstellten und

138
00:13:47,790 --> 00:13:51,630
aktualisierten Zeitstempel im Moment genau gleich sind und

139
00:13:51,630 --> 00:13:57,235
dann die ID auch automatisch hinzugefügt wird in.

140
00:13:57,235 --> 00:14:03,210
Im nächsten Schritt drucken wir alle Gerichte aus, die abgerufen wurden, und so

141
00:14:03,210 --> 00:14:10,340
können Sie sehen, dass dieses einzige Gericht in der Sammlung ist,

142
00:14:10,340 --> 00:14:15,935
Geschirr Sammlung, und das ist, was auf dem Bildschirm hier gedruckt wird.

143
00:14:15,935 --> 00:14:25,660
Lassen Sie uns jetzt das Git-Repository initialisieren und dann lassen Sie uns die bekommene gitignore Datei einrichten,

144
00:14:25,660 --> 00:14:35,125
so gehen wir zum Editor, dann erstellen wir die.gitignore Datei und fügen dann

145
00:14:35,125 --> 00:14:40,240
Knotenmodule zur gitignore Datei hinzu und speichern Sie die Änderungen und

146
00:14:40,240 --> 00:14:45,325
gehen dann zurück zu der Eingabeaufforderung lassen Sie mich

147
00:14:45,325 --> 00:14:48,550
git status eingeben und wir sehen, dass

148
00:14:48,550 --> 00:14:51,955
wir haben diese Dateien, die nicht eingecheckt wurden, also sagen wir

149
00:14:51,955 --> 00:14:56,545
git add und git

150
00:14:56,545 --> 00:15:04,535
commit der Nachricht Mongoose Part One.

151
00:15:04,535 --> 00:15:08,110
Damit schließen wir diese Übung ab.

152
00:15:08,110 --> 00:15:14,300
In dieser Übung haben wir gesehen, wie einfach es ist, eine Knotenanwendung mit

153
00:15:14,300 --> 00:15:21,335
Mungo einzurichten und sich mit unserem MongoDB-Server zu verbinden und dann mit ihm zu interagieren.

154
00:15:21,335 --> 00:15:24,985
Jetzt, da Mungo auf dem MongoDB-Server aufbaut,

155
00:15:24,985 --> 00:15:28,980
kann Mongoose auf alle verschiedenen Methoden zugreifen

156
00:15:28,980 --> 00:15:32,690
, die auch vom MongoDB-Treiber unterstützt werden.