1
00:00:03,910 --> 00:00:09,095
Es ist Zeit, mit dem vierten und letzten Auftrag dieses Kurses zu beginnen.

2
00:00:09,095 --> 00:00:12,170
Ich habe diesen Auftrag so konzipiert,

3
00:00:12,170 --> 00:00:15,610
dass er eine Konsolidierung all dessen darstellt, was Sie in diesem Kurs gelernt haben.

4
00:00:15,610 --> 00:00:21,990
Diese Zuweisung beinhaltet also das Routing mit dem Express-Router.

5
00:00:21,990 --> 00:00:26,340
Es wird das Design von Schemas im Modell beinhalten,

6
00:00:26,340 --> 00:00:29,420
für unsere MongoDB und Mongoose,

7
00:00:29,420 --> 00:00:33,531
und dann wird es auch kurz auf die Benutzerauthentifizierung schauen.

8
00:00:33,531 --> 00:00:36,420
Was genau machen wir in diesem Auftrag?

9
00:00:36,420 --> 00:00:41,600
Diese Zuweisung basiert auf der Fähigkeit eines Benutzers,

10
00:00:41,600 --> 00:00:49,510
eine Liste von Gerichten als Lieblingsgerichte auf der Serverseite zu speichern und abzurufen.

11
00:00:49,510 --> 00:00:53,105
Wenn Sie die vorherigen Kurse dieser Spezialisierung,

12
00:00:53,105 --> 00:00:58,275
insbesondere die Hybrid-Mobile-App-Entwicklungskurse,

13
00:00:58,275 --> 00:01:00,675
ob es sich

14
00:01:00,675 --> 00:01:06,720
um ionische oder native Skript, Sie haben gesehen, dass wir die Apps entworfen haben, um dem Benutzer zu erlauben,

15
00:01:06,720 --> 00:01:10,355
Gerichte in der Liste ihrer Favoriten zu speichern Gerichte

16
00:01:10,355 --> 00:01:14,480
und auch abrufen Gerichte aus dieser Liste ihrer Lieblingsgerichte.

17
00:01:14,480 --> 00:01:17,840
Als wir das in den vorherigen Kursen

18
00:01:17,840 --> 00:01:24,085
implementiert haben, hatten wir das mit lokalem Speicher auf dem jeweiligen Gerät implementiert.

19
00:01:24,085 --> 00:01:26,330
In dieser Zuweisung erweitern Sie

20
00:01:26,330 --> 00:01:30,308
die Serverseite, um genau das unterstützen zu können.

21
00:01:30,308 --> 00:01:34,940
Auf diese Weise kann der Benutzer seine Liste der Lieblingsgerichte auf

22
00:01:34,940 --> 00:01:37,805
der Serverseite speichern und auf diese Liste von

23
00:01:37,805 --> 00:01:41,950
jedem Gerät zugreifen, von dem er sich bei seinem Server anmeldet.

24
00:01:41,950 --> 00:01:49,140
Das bedeutet, dass wir eine neue Route für unseren Server entwerfen müssen,

25
00:01:49,140 --> 00:01:52,615
die wir als /favorites Route aufrufen werden.

26
00:01:52,615 --> 00:01:59,314
Auf dieser Route müssen wir den Express-Router entwerfen, um die Get,

27
00:01:59,314 --> 00:02:03,515
Post und Delete Operationen auf dieser Route zu unterstützen und

28
00:02:03,515 --> 00:02:08,495
auch das Schema zu entwerfen, um die Lieblingsgerichte

29
00:02:08,495 --> 00:02:13,343
und das entsprechende Mongoose-Modell zu speichern und

30
00:02:13,343 --> 00:02:19,820
die beiden miteinander zu verbinden, so dass die Informationen gespeichert werden können und aus MongoDB abgerufen.

31
00:02:19,820 --> 00:02:27,590
Wir werden auch die Mungo Population verwenden, um die Informationen aus

32
00:02:27,590 --> 00:02:32,000
dem Benutzermodell und aus dem Geschirr Modell zu ziehen, wenn wir

33
00:02:32,000 --> 00:02:37,105
diese Liste der Lieblingsgerichte für unseren Benutzer zusammenstellen.

34
00:02:37,105 --> 00:02:41,355
Die bevorzugten Gerichte Informationen, die Sie speichern

35
00:02:41,355 --> 00:02:46,355
, enthalten weder die Benutzerinformationen noch die Informationen des Gerichts.

36
00:02:46,355 --> 00:02:53,000
Stattdessen enthält es Hinweise auf die Dokumente für das Gericht Dokument und für

37
00:02:53,000 --> 00:02:56,660
das Benutzerdokument und dann werden wir diese Informationen veröffentlichen,

38
00:02:56,660 --> 00:03:03,155
wenn wir diese Informationen als Antwort auf eine get Anfrage zurücksenden.

39
00:03:03,155 --> 00:03:05,495
Schauen wir uns an, wie wir

40
00:03:05,495 --> 00:03:13,135
diese endgültige Aufgabe umsetzen und auch die verschiedenen Aufgaben in diesem endgültigen Auftrag.

41
00:03:13,135 --> 00:03:17,370
Um Ihnen zu helfen zu verstehen, was in

42
00:03:17,370 --> 00:03:21,330
der endgültigen Zuweisung erforderlich ist oder was Sie in der endgültigen Zuweisung implementieren werden,

43
00:03:21,330 --> 00:03:26,835
lassen Sie mich zeigen, was Ihr Server am Ende dieser Zuweisung erwartet

44
00:03:26,835 --> 00:03:31,540
wird, und dann werde ich die drei Aufgaben auflisten, die Sie in diesem -Zuweisung.

45
00:03:31,540 --> 00:03:35,460
Um zu beginnen, brauchen wir eine Reihe von Gerichten, die bereits auf

46
00:03:35,460 --> 00:03:40,250
der Serverseite sind, damit der Benutzer einige von ihnen als ihre Lieblingsgerichte markieren kann.

47
00:03:40,250 --> 00:03:47,805
Ich habe vorangegangen und in vier Gerichten zu meiner Liste der Gerichte auf der Serverseite hinzugefügt.

48
00:03:47,805 --> 00:03:50,065
Sie wissen bereits, wie das geht.

49
00:03:50,065 --> 00:03:52,725
Sie müssen sich als Administrator einloggen und

50
00:03:52,725 --> 00:03:56,670
diese Informationen dann nacheinander auf der Serverseite posten.

51
00:03:56,670 --> 00:04:01,590
Damit Sie die Informationen für jedes dieser Gerichte erhalten,

52
00:04:01,590 --> 00:04:05,405
habe ich Ihnen bereits die Datei db.json zur Verfügung gestellt, die die

53
00:04:05,405 --> 00:04:11,400
JSON-Dokumente enthält, die jedem dieser Gerichte in den Zuweisungsressourcen entsprechen.

54
00:04:11,400 --> 00:04:14,670
Sie können das öffnen, Informationen von dort ausschneiden und einfügen und dann

55
00:04:14,670 --> 00:04:19,576
eine Liste mit Gerichten auf Ihrer Serverseite erstellen.

56
00:04:19,576 --> 00:04:22,980
Hier werden Sie sehen, dass ich bereits die get-Operation auf dem

57
00:04:22,980 --> 00:04:26,940
localhost durchgeführt haben:3000/Gerichte und dann

58
00:04:26,940 --> 00:04:31,140
sehen Sie, dass ich bereits die Liste der Gerichte hier erhalten habe.

59
00:04:31,140 --> 00:04:38,570
Was uns wichtig ist, ist, dass jedes Gericht hier seine eigene ID hat.

60
00:04:38,570 --> 00:04:42,384
Wenn Sie jedes Gericht als Ihr Favorit markieren müssen,

61
00:04:42,384 --> 00:04:46,470
benötigen Sie Zugriff auf die Schalen-ID für jedes dieser Gerichte.

62
00:04:46,470 --> 00:04:51,030
Sie können diese vier Teller IDs kopieren und dann speichern, so dass, wenn Sie

63
00:04:51,030 --> 00:04:56,094
die Operationen durchführen, um diese Gerichte zur Liste der Gerichte hinzuzufügen,

64
00:04:56,094 --> 00:05:00,085
dann können Sie diese Gericht ID verwenden.

65
00:05:00,085 --> 00:05:02,730
Also werde ich diese vier Teller IDs kopieren und

66
00:05:02,730 --> 00:05:05,820
sie dann in einem Textdokument speichern, damit ich sie nutzen kann.

67
00:05:05,820 --> 00:05:09,325
Bevor ich Gerichte zu meiner Liste hinzufügen kann,

68
00:05:09,325 --> 00:05:12,347
muss ich mich natürlich als Benutzer einloggen.

69
00:05:12,347 --> 00:05:16,370
Lassen Sie mich voran und melden Sie sich als einer der Benutzer an.

70
00:05:16,370 --> 00:05:25,245
Um dies zu tun, lassen Sie mich einen Beitrag auf dem localhost machen:3000/users/login.

71
00:05:25,245 --> 00:05:28,530
Und im Nachrichtentext,

72
00:05:28,530 --> 00:05:35,940
lassen Sie mich einen der registrierten Benutzer eingeben.

73
00:05:35,940 --> 00:05:42,375
Ich möchte mich nicht als Admin anmelden, sondern als einer der anderen normalen Benutzer.

74
00:05:42,375 --> 00:05:47,442
Also lassen Sie mich diesen Beitrag zu https://localhost:3443 tun.

75
00:05:47,442 --> 00:05:48,890
Jetzt all diese Operationen,

76
00:05:48,890 --> 00:05:55,200
dies ist besser, es auf dem HTTPS-Endpunkt zu tun, anstatt auf dem HTTP-Endpunkt.

77
00:05:55,200 --> 00:06:01,920
Wir erstellen einen Beitrag zu diesem Endpunkt und melden uns in unserem Service an,

78
00:06:01,920 --> 00:06:05,920
und als Antwort sollten Sie in der Lage sein, das JSON-Web-Token zu erhalten.

79
00:06:05,920 --> 00:06:11,190
Lassen Sie uns also eine Kopie dieses JSON-Web-Token erstellen, weil wir dies benötigen, um

80
00:06:11,190 --> 00:06:16,905
eine der Operationen auszuführen, um Gerichte zu unserer Favoritenliste hinzuzufügen.

81
00:06:16,905 --> 00:06:22,628
Lassen Sie mich dieses Token kopieren und in meinem Textdokument speichern.

82
00:06:22,628 --> 00:06:27,935
Nun, wie füge ich ein Gericht zu meiner Favoritenliste hinzu?

83
00:06:27,935 --> 00:06:33,450
Um dies zu tun, ist der erste Schritt, dass wir

84
00:06:33,450 --> 00:06:40,355
auf den /favorites-Endpunkt zugreifen müssen.

85
00:06:40,355 --> 00:06:45,435
Wenn Sie ein bestimmtes Gericht in die Liste der Favoriten hinzufügen möchten,

86
00:06:45,435 --> 00:06:52,605
sagen wir einfach /favorites und fügen dann die Dish-ID in die URL hier.

87
00:06:52,605 --> 00:06:57,970
Lassen Sie mich eine Schüssel ID einfügen, die ich zu meiner Favoritenliste hinzufügen möchte.

88
00:06:57,970 --> 00:07:03,130
Hier habe ich meine Schale ID in die Liste der Favoriten eingefügt.

89
00:07:03,130 --> 00:07:08,025
Der Text dieser Hostnachricht

90
00:07:08,025 --> 00:07:13,590
enthält nichts, da alles, was ich brauche, bereits in der URL enthalten ist.

91
00:07:13,590 --> 00:07:16,043
Und für den Header

92
00:07:16,043 --> 00:07:18,984
muss ich den Autorisierungs-Header einrichten,

93
00:07:18,984 --> 00:07:21,371
und im Autorisierungs-Header

94
00:07:21,371 --> 00:07:24,380
brauche ich das Token.

95
00:07:24,380 --> 00:07:29,487
Lassen Sie mich also das Token hier und dann in den Autorisierungs-Header kopieren,

96
00:07:29,487 --> 00:07:34,750
sagen wir Bearer und fügen Sie den Autorisierungs-Header ein.

97
00:07:34,750 --> 00:07:39,853
Sie können auch dasselbe tun, um das Token zu erhalten.

98
00:07:39,853 --> 00:07:46,925
Sie können sich auch über Facebook anmelden und dann das JSON-Web-Token abrufen.

99
00:07:46,925 --> 00:07:50,960
Ich habe veranschaulicht, das JSON-Web-Token mit

100
00:07:50,960 --> 00:07:55,655
der lokalen Standardauthentifizierung mit dem Benutzernamen und dem Kennwort zu erhalten,

101
00:07:55,655 --> 00:07:58,940
aber es spielt keine Rolle, auf welche Weise Sie das JSON-Web-Token erhalten haben.

102
00:07:58,940 --> 00:08:01,160
Solange Sie das JSON-Web-Token haben,

103
00:08:01,160 --> 00:08:04,376
sollten Sie in der Lage sein, alle diese Vorgänge auszuführen.

104
00:08:04,376 --> 00:08:10,280
Lassen Sie mich die Post-Operation an diesem Endpunkt durchführen und denken Sie daran, dass dies

105
00:08:10,280 --> 00:08:16,570
die Schalen-ID für das spezifische Gericht ist, das ich meiner Favoritenliste hinzufügen möchte.

106
00:08:16,570 --> 00:08:19,895
Wenn ich in die Liste der Favoriten poste,

107
00:08:19,895 --> 00:08:29,135
werden Sie sehen, dass mein Server mit diesem Dokument hier im Antworttext zurückantwortet.

108
00:08:29,135 --> 00:08:33,328
Lassen Sie uns nun dieses Dokument untersuchen, um zu sehen, was genau es enthält.

109
00:08:33,328 --> 00:08:36,680
Dieses Dokument enthält, wie Sie sehen können, eine ID,

110
00:08:36,680 --> 00:08:39,511
aber offensichtlich, weil es sich um ein JSON-Dokument handelt,

111
00:08:39,511 --> 00:08:43,115
zusätzlich enthält es ein

112
00:08:43,115 --> 00:08:46,335
Feld hier namens user.

113
00:08:46,335 --> 00:08:48,425
Nun, was speichert dieses Benutzerfeld?

114
00:08:48,425 --> 00:08:53,848
Dieses Benutzerfeld ist die Objekt-ID des Benutzers

115
00:08:53,848 --> 00:09:00,620
, dem diese spezielle Favoritenliste entspricht.

116
00:09:00,620 --> 00:09:02,960
Und sieh dir das Geschirr an.

117
00:09:02,960 --> 00:09:10,120
Das Geschirr ist ein Array und es ist eine Reihe von Gericht IDs.

118
00:09:10,120 --> 00:09:15,950
Und in diesem Fall habe ich gerade das erste Gericht zu meiner Favoritenliste hinzugefügt.

119
00:09:15,950 --> 00:09:22,690
Deshalb habe ich nur ein Gericht in der Reihe von Gerichten in meiner Favoritenliste.

120
00:09:22,690 --> 00:09:30,140
Dies sollte Ihnen also sofort vorschlagen, wie Sie das Schema für Ihre Favoriten entwerfen.

121
00:09:30,140 --> 00:09:34,760
Also enthält Gerichte die Objekt-IDs jedes der Gerichte,

122
00:09:34,760 --> 00:09:39,124
und der Benutzer enthält die Objekt-ID, die dem Benutzer entspricht.

123
00:09:39,124 --> 00:09:42,335
Sie haben bereits gesehen, wie ich

124
00:09:42,335 --> 00:09:49,800
die Informationen verwenden, um Population der Informationen zu tun, wenn ich eine get Operation. Das

125
00:09:49,800 --> 00:09:52,690
haben wir bereits mit Kommentaren gemacht.

126
00:09:52,690 --> 00:09:57,980
Also, das sollte Ihnen einen großen Hinweis darauf geben, wie Sie das Schema entwerfen würden,

127
00:09:57,980 --> 00:10:04,855
das den Benutzer und die Vielfalt der Gerichte in meiner Liste der Gerichte enthält.

128
00:10:04,855 --> 00:10:07,330
Jetzt haben wir den Beitrag dazu gemacht.

129
00:10:07,330 --> 00:10:09,500
Lassen Sie uns die Liste der Favoriten erhalten.

130
00:10:09,500 --> 00:10:11,750
Also, um die Liste der Favoriten zu erhalten,

131
00:10:11,750 --> 00:10:14,405
muss ich eine get Operation durchführen.

132
00:10:14,405 --> 00:10:16,561
Nun, für die Get-Operation,

133
00:10:16,561 --> 00:10:21,950
muss ich natürlich auch die Autorisierungsinformationen hier haben, weil

134
00:10:21,950 --> 00:10:27,635
Sie möchten, dass ein Benutzer nur seine Favoritenliste abrufen kann,

135
00:10:27,635 --> 00:10:32,905
und kein anderer Benutzer kann die Liste der Favoriten für einen anderen Benutzer abrufen.

136
00:10:32,905 --> 00:10:34,590
Also, das ist sehr wichtig.

137
00:10:34,590 --> 00:10:37,640
Dies schlägt Ihnen also nahe, dass Sie die

138
00:10:37,640 --> 00:10:41,620
Authentizität des Benutzers auch für den get-Vorgang überprüfen müssen.

139
00:10:41,620 --> 00:10:45,185
Wie

140
00:10:45,185 --> 00:10:49,760
erhält der Post-Vorgang automatisch diese Objekt-ID, die dem Benutzer entspricht? Denken Sie

141
00:10:49,760 --> 00:10:55,175
daran, dass, wenn Sie den Autorisierungs-Header hier einfügen,

142
00:10:55,175 --> 00:10:57,457
aus dem Autorisierungs-Header

143
00:10:57,457 --> 00:11:01,055
übrigens, wie Sie die Autorisierung des Benutzers ausführen,

144
00:11:01,055 --> 00:11:06,240
leiten, dass Benutzereigenschaften bereits auf das Anforderungsobjekt geladen wurden.

145
00:11:06,240 --> 00:11:10,270
Und so erhalten Sie Zugriff auf die Objekt-ID des Benutzers.

146
00:11:10,270 --> 00:11:13,914
Also, ein weiterer Hinweis, wie Sie diese Informationen ausfüllen werden.

147
00:11:13,914 --> 00:11:16,655
Deshalb beachten Sie, dass ich, als ich den Beitrag durchgeführt habe,

148
00:11:16,655 --> 00:11:19,625
nie den Benutzer angegeben habe, weil

149
00:11:19,625 --> 00:11:23,825
die Informationen des Benutzers automatisch

150
00:11:23,825 --> 00:11:28,484
von dem abgeleitet werden sollten, was wir hier im Autorisierungs-Header angegeben haben.

151
00:11:28,484 --> 00:11:32,565
Also, ein weiterer Hinweis, wie Sie dies umsetzen würden.

152
00:11:32,565 --> 00:11:36,830
Deshalb habe ich gesagt, dass dieser Auftrag eine Konsolidierung

153
00:11:36,830 --> 00:11:41,835
aller Themen ist, die Sie in diesem Kurs erforscht haben.

154
00:11:41,835 --> 00:11:47,200
Nun, Ich unterstütze nicht eine get Operation auf einem bestimmten Gericht ID.

155
00:11:47,200 --> 00:11:50,610
Es macht keinen Sinn, das auf den Favoriten

156
00:11:50,610 --> 00:11:53,345
in einer bestimmten Schüssel ID zu unterstützen.

157
00:11:53,345 --> 00:11:58,595
Stattdessen können wir eine get Operation auf lokalen Host ausführen 3443/Favoriten.

158
00:11:58,595 --> 00:12:01,670
Und dann führen wir die Get Operation durch.

159
00:12:01,670 --> 00:12:09,398
Sie würden sofort feststellen, dass das Dokument, das an Sie zurückgesendet wird,

160
00:12:09,398 --> 00:12:17,715
die Informationen des Benutzers enthält, die bereits durch den Vorgang get hier ausgefüllt wurden.

161
00:12:17,715 --> 00:12:18,950
Also, die Informationen des Benutzers.

162
00:12:18,950 --> 00:12:22,112
Anstelle der Benutzer-ID dort sind also

163
00:12:22,112 --> 00:12:26,445
bereits die Informationen des Benutzers vorhanden.

164
00:12:26,445 --> 00:12:28,730
Dies geschieht durch Mongos Bevölkerung.

165
00:12:28,730 --> 00:12:34,435
Also, das ist ein weiterer großer Hinweis darauf, wie Sie die get-Operation implementieren sollen.

166
00:12:34,435 --> 00:12:37,130
Nicht nur die Informationen des Nutzers werden ausgefüllt.

167
00:12:37,130 --> 00:12:39,626
Warum sollte ich nun wollen, dass die Informationen des Benutzers ausgefüllt werden?

168
00:12:39,626 --> 00:12:44,540
Denn das kann nützlich sein, wenn ich Informationen anzeige.

169
00:12:44,540 --> 00:12:46,350
Dies ist möglicherweise nicht notwendig,

170
00:12:46,350 --> 00:12:49,445
aber ich mache das nur aus Gründen der Vollständigkeit,

171
00:12:49,445 --> 00:12:53,825
denn wenn Sie die Liste der Favoriten für einen bestimmten Benutzer abrufen,

172
00:12:53,825 --> 00:12:56,120
wissen Sie automatisch, wer der Benutzer ist,

173
00:12:56,120 --> 00:12:59,083
und dieser bestimmte Benutzer sich ohnehin einloggt.

174
00:12:59,083 --> 00:13:01,385
Wenn Sie jedoch die Informationen des Benutzers wünschen,

175
00:13:01,385 --> 00:13:06,278
können Sie diesen Vorgang ausführen, um die Informationen dieses Benutzers zu erhalten.

176
00:13:06,278 --> 00:13:10,720
Also, nur um Ihnen zu zeigen, dass Mongos Bevölkerung verwendet werden kann,

177
00:13:10,720 --> 00:13:16,515
habe ich nicht nur illustriert, dass in der Liste der Gerichte hier

178
00:13:16,515 --> 00:13:22,820
die Informationen über jedes Gericht bereits in diesem Array bevölkert sind.

179
00:13:22,820 --> 00:13:24,907
Also, wenn Sie eine Reihe von Gerichten haben,

180
00:13:24,907 --> 00:13:30,385
sollten die Informationen jedes dieser Gerichte in dieses Array eingefüllt werden.

181
00:13:30,385 --> 00:13:34,670
Also, dies ist eine andere Mongo Bevölkerung Nutzung

182
00:13:34,670 --> 00:13:38,555
, die Sie sehen, um in den Geschirr Informationen zu füllen.

183
00:13:38,555 --> 00:13:44,014
Nur durch die Art und Weise, wie Sie das Schema für Ihre Favoriten einrichten,

184
00:13:44,014 --> 00:13:47,840
sollte dies automatisch für Sie möglich sein, indem Sie

185
00:13:47,840 --> 00:13:52,010
nur den Punkt auf der Liste der Gerichte hier füllen.

186
00:13:52,010 --> 00:13:54,103
Also, das ist der zweite Teil.

187
00:13:54,103 --> 00:13:59,213
Jetzt, da wir in der Lage sind, die Methode get Gerichte abzurufen,

188
00:13:59,213 --> 00:14:03,590
lassen Sie mich Ihnen zeigen, wie Sie eine Post-Operation durchführen können, bei der Sie

189
00:14:03,590 --> 00:14:08,750
eine Reihe von Gerichten in Ihre Favoritenliste einfügen können.

190
00:14:08,750 --> 00:14:11,145
Nun, gehen Sie zurück zu diesem Beitrag,

191
00:14:11,145 --> 00:14:18,145
wenn Sie nicht nur ein, sondern eine Reihe von Gerichten zu Ihrer Liste der Favoriten hinzufügen müssen,

192
00:14:18,145 --> 00:14:19,850
warum sollten Sie das wollen?

193
00:14:19,850 --> 00:14:24,980
Vielleicht haben Sie auf der Seite des Kunden eine Schaltfläche, mit der Sie, wenn

194
00:14:24,980 --> 00:14:31,255
Sie darauf klicken, markieren Sie eine Reihe von Gerichten aus der Liste der Gerichte,

195
00:14:31,255 --> 00:14:34,710
und fügen Sie sie dann bei einem Schuss in Ihre Liste der Favoriten.

196
00:14:34,710 --> 00:14:37,390
Um diese Art von Operation zu unterstützen,

197
00:14:37,390 --> 00:14:42,295
möchten Sie möglicherweise zulassen, dass ein Beitrag auf den Schrägstrich Favoriten hier ausgeführt wird.

198
00:14:42,295 --> 00:14:45,641
Wenn der Beitrag nun mit den Schrägstrickfavoriten ausgeführt wird,

199
00:14:45,641 --> 00:14:48,959
benötigen Sie noch den Autorisierungs-Header.

200
00:14:48,959 --> 00:14:51,460
Aber im Nachrichtentext

201
00:14:51,460 --> 00:14:57,493
werden wir die Liste der Gerichte als ein Array dieses Formats speichern.

202
00:14:57,493 --> 00:15:01,490
Also, dies ist ein JSON-Dokument hier,

203
00:15:01,490 --> 00:15:04,340
also lassen Sie mich sicherstellen, dass in meinem Header

204
00:15:04,340 --> 00:15:08,107
der Inhaltstyp bereits dort vorhanden ist.

205
00:15:08,107 --> 00:15:14,545
Nun wird dieses Dokument

206
00:15:14,545 --> 00:15:18,735
eine Reihe von Gerichten wie dieses enthalten.

207
00:15:18,735 --> 00:15:22,700
Also, jedes Gericht wird durch

208
00:15:22,700 --> 00:15:29,860
Unterstrich ID Doppelpunkt identifiziert werden,

209
00:15:29,860 --> 00:15:34,835
und dann hier werden sie die Gericht ID haben,

210
00:15:34,835 --> 00:15:39,760
und so wäre dies nichts anderes als eine Reihe von Gerichten.

211
00:15:39,760 --> 00:15:46,630
Also, lassen Sie mich zwei Gerichte zu meiner Liste der Favoriten hier hinzufügen, nur um den Punkt zu veranschaulichen.

212
00:15:46,630 --> 00:15:51,726
Also, lassen Sie mich die IDs von ein paar Gerichten in das einfügen.

213
00:15:51,726 --> 00:15:56,823
Also, wenn Sie einen Beitrag auf dem lokalen Host 3443/Favoriten ausführen,

214
00:15:56,823 --> 00:16:02,295
ist dies, wie Sie den Text der Post Nachricht hier verfassen.

215
00:16:02,295 --> 00:16:07,497
Also, jedes Gericht, das Sie hinzufügen möchten, wird hier in diesem Format enthalten sein.

216
00:16:07,497 --> 00:16:09,670
Nun, wenn Sie sie in diesem Format einschließen

217
00:16:09,670 --> 00:16:12,425
und dann auf dieser Serverseite posten,

218
00:16:12,425 --> 00:16:20,161
wird der Server im Gegenzug die aktualisierte Liste der Favoriten für Sie zurücksenden.

219
00:16:20,161 --> 00:16:23,395
Wenn Sie also die aktualisierte Liste der Favoriten von der Serverseite erhalten,

220
00:16:23,395 --> 00:16:26,300
werden Sie sehen, dass die Informationen des Benutzers bereits vorhanden

221
00:16:26,300 --> 00:16:34,685
sind, aber beachten Sie, wie die Lieblingsgerichte in diesem Array von Dish Objekt-IDs gespeichert werden.

222
00:16:34,685 --> 00:16:38,320
Also, der erste, den wir bereits in der vorherigen Operation hinzugefügt hatten.

223
00:16:38,320 --> 00:16:39,485
Also die restlichen zwei,

224
00:16:39,485 --> 00:16:43,990
wir haben gerade zur Liste unserer Favoriten hinzugefügt.

225
00:16:43,990 --> 00:16:47,545
Also, diese beiden Objekt-IDs werden auch in

226
00:16:47,545 --> 00:16:53,110
meinem Geschirr Array in meinem Favoriten-Dokument hier hinzugefügt.

227
00:16:53,110 --> 00:16:56,050
Also, da gehst du. So sollen Sie

228
00:16:56,050 --> 00:17:02,763
den Favoritenbeitrag auf dem Endpunkt so ausführen.

229
00:17:02,763 --> 00:17:05,340
Nun, lassen Sie uns wieder eine get Operation auf

230
00:17:05,340 --> 00:17:10,160
den Favoriten durchführen, nur um zu sehen, was die get Operation Funktionen für uns.

231
00:17:10,160 --> 00:17:12,600
Wenn wir also die GET-Operation durchführen,

232
00:17:12,600 --> 00:17:21,345
werden Sie sofort bemerken, dass

233
00:17:21,345 --> 00:17:23,640
Sie im Dokument der Rückgabe-Favoriten die Informationen des Benutzers dort haben,

234
00:17:23,640 --> 00:17:25,065
und dann unten unten hier

235
00:17:25,065 --> 00:17:29,820
ist das Geschirr nichts anderes als eine Reihe von Json-Dokumenten, die

236
00:17:29,820 --> 00:17:32,670
jeweils einem Gericht entsprechen.

237
00:17:32,670 --> 00:17:35,010
Jetzt wird dies automatisch von der Mungo

238
00:17:35,010 --> 00:17:38,360
bevölkern übernommen, die wir auf der Serverseite getan haben.

239
00:17:38,360 --> 00:17:44,525
All diese Informationen sollten also automatisch serverseitig aufgefüllt werden.

240
00:17:44,525 --> 00:17:50,430
So funktionieren Ihre Post-Operationen auf den beiden Endpunkten.

241
00:17:50,430 --> 00:17:56,395
Lassen Sie mich Ihnen nun zeigen, wie Sie eine DELETE-Operation ausführen würden.

242
00:17:56,395 --> 00:18:00,735
Jetzt, um ein bestimmtes Gericht zu löschen.

243
00:18:00,735 --> 00:18:08,193
Lassen Sie mich also einen Löschvorgang auf einem bestimmten Endpunkt durchführen.

244
00:18:08,193 --> 00:18:13,095
Also werden wir zu diesem Endpunkt zurückkehren,

245
00:18:13,095 --> 00:18:16,470
und dann lassen Sie mich einfach eins davon kopieren,

246
00:18:16,470 --> 00:18:18,985
und dann werde ich eines der Gerichte löschen.

247
00:18:18,985 --> 00:18:22,585
Um also den Löschvorgang an einem

248
00:18:22,585 --> 00:18:23,750
der Gerichte durchzuführen,

249
00:18:23,750 --> 00:18:26,453
brauchen wir natürlich den Körper noch nicht

250
00:18:26,453 --> 00:18:29,485
und wir brauchen den Inhalt hier nicht.

251
00:18:29,485 --> 00:18:35,580
Alles, was wir tun müssen, ist eine Löschoperation auf diesem Endpunkt durchzuführen.

252
00:18:35,580 --> 00:18:43,125
Also hier sehen Sie, dass ich localhost mache: 3443/favorites/ und dann die Dish-ID.

253
00:18:43,125 --> 00:18:46,231
Und dann lassen Sie mich das posten.

254
00:18:46,231 --> 00:18:51,760
Wenn ich also ein bestimmtes Gericht aus meiner Favoritenliste lösche,

255
00:18:51,760 --> 00:18:53,695
bemerken Sie sofort, dass

256
00:18:53,695 --> 00:19:01,555
meine aktualisierte Favoritenliste vom Server an die Clientseite zurückgesendet wird.

257
00:19:01,555 --> 00:19:03,010
Sie haben also den Benutzer hier,

258
00:19:03,010 --> 00:19:06,220
aber beachten Sie, dass ich im Geschirr Array nur zwei Gerichte habe.

259
00:19:06,220 --> 00:19:11,105
Die, die ich gerade gelöscht habe, ist von dieser Liste der Gerichte verschwunden.

260
00:19:11,105 --> 00:19:12,820
Also, wenn Sie jetzt ein GET durchführen,

261
00:19:12,820 --> 00:19:18,265
wird Ihr Geschirr Array ständig zu Gerichten dort drin.

262
00:19:18,265 --> 00:19:24,635
Nehmen wir nun an, ich führe ein DELETE für die Favoriten hier aus.

263
00:19:24,635 --> 00:19:30,565
Also, wenn ich DELETE direkt am Favoritenendpunkt selbst durchführe,

264
00:19:30,565 --> 00:19:34,540
dann ist es, alle meine Favoriten zu löschen und

265
00:19:34,540 --> 00:19:39,096
auch mein Favoritendokument vollständig von der Serverseite zu löschen.

266
00:19:39,096 --> 00:19:42,250
Lassen Sie mich also diesen Löschvorgang auf der Serverseite durchführen,

267
00:19:42,250 --> 00:19:47,000
und dann wird es die Tatsache zurückgeben, dass es dieses bestimmte Dokument gelöscht hat,

268
00:19:47,000 --> 00:19:49,675
also gibt es dieses Dokument trotzdem zurück.

269
00:19:49,675 --> 00:19:54,670
Aber jetzt, wenn ich eine GET-Operation auf meiner Favoritenliste

270
00:19:54,670 --> 00:19:57,580
durchführe, werde ich dort eine Null abrufen.

271
00:19:57,580 --> 00:20:00,880
Das bedeutet, dass ich dieses Dokument nicht auf der Serverseite habe.

272
00:20:00,880 --> 00:20:03,800
Das Favoriten-Dokument ist also vollständig verschwunden,

273
00:20:03,800 --> 00:20:09,352
wenn ich die DELETE-Operation auf der lokalen Hostspalte drei von früher Schrägstrich Favoriten durchführe.

274
00:20:09,352 --> 00:20:12,805
Wenn ich nun wieder ein neues Gericht zu meiner Favoritenliste hinzufüge,

275
00:20:12,805 --> 00:20:16,580
wird mein Favoritendokument immer wieder eingerichtet.

276
00:20:16,580 --> 00:20:21,880
Das ist vollkommen in Ordnung für uns, damit zu operieren.

277
00:20:21,880 --> 00:20:26,440
Mit dieser Demonstration habe ich Ihnen

278
00:20:26,440 --> 00:20:32,680
alle verschiedenen Operationen gezeigt, die Sie auf Ihrer Serverseite ausführen müssen.

279
00:20:32,680 --> 00:20:36,670
Alle verschiedenen Vorgänge auf den verschiedenen Routenendpunkten

280
00:20:36,670 --> 00:20:40,754
, die Sie serverseitig ausführen oder implementieren müssen.

281
00:20:40,754 --> 00:20:42,265
Nun, da Sie

282
00:20:42,265 --> 00:20:47,720
alle verschiedenen Operationen gesehen haben, die die Serverseite auf den Schrägstrich Favoriten unterstützen sollte,

283
00:20:47,720 --> 00:20:48,895
und die Schrägstrich Favoriten,

284
00:20:48,895 --> 00:20:50,995
Schrägstrich Gericht ID Endpunkte,

285
00:20:50,995 --> 00:20:56,033
lassen Sie mich die drei Aufgaben auflisten, die Sie in dieser Zuweisung ausführen müssen.

286
00:20:56,033 --> 00:21:03,340
Die erste Aufgabe besteht natürlich darin, das Lieblingsschema und -modell zu implementieren.

287
00:21:03,340 --> 00:21:09,995
Dies werden Sie im Models-Ordner in einer Datei namens Favorit NodeJS implementieren.

288
00:21:09,995 --> 00:21:12,460
Dort werden Sie das Favoritenschema implementieren.

289
00:21:12,460 --> 00:21:13,952
Denken Sie daran, dass das Favoritenschema

290
00:21:13,952 --> 00:21:19,720
den Verweis auf die Dokumentobjekt-ID des Benutzers

291
00:21:19,720 --> 00:21:26,212
und ein Array von Gerichten Dokumentobjekt-IDs speichert.

292
00:21:26,212 --> 00:21:29,440
Das ist der große Hinweis darauf, wie Sie

293
00:21:29,440 --> 00:21:33,355
das Schema und das Modell für Ihre Favoriten entwerfen sollen.

294
00:21:33,355 --> 00:21:39,190
Die zweite Aufgabe in Ihrer Zuweisung besteht darin, die GET-

295
00:21:39,190 --> 00:21:46,555
, POST- und DELETE-Vorgänge auf dem Endpunkt der Schrägstriche zu implementieren.

296
00:21:46,555 --> 00:21:49,245
GET wird Ihnen die Liste der Favoriten erhalten, die

297
00:21:49,245 --> 00:21:52,225
automatisch von Mongos aufgefüllt werden,

298
00:21:52,225 --> 00:21:58,360
der POST sollte eine Liste von Gerichten enthalten, wie

299
00:21:58,360 --> 00:22:04,425
in dem Format angegeben, das ich Ihnen gerade im Körper der POST-Nachricht gezeigt habe.

300
00:22:04,425 --> 00:22:08,695
Und so wird eine Reihe von Gerichten in Ihrer Liste der Favoriten hinzugefügt werden,

301
00:22:08,695 --> 00:22:11,800
und DELETE-Operation auf dem Schrägstrich Favoriten Endpunkt wird

302
00:22:11,800 --> 00:22:16,215
Ihr Favoriten-Dokument vollständig von der Serverseite löschen.

303
00:22:16,215 --> 00:22:22,225
Wenn Sie nun eine POST-Operation auf Schrägstrich Lieblings Schrägstrich Dish ID durchführen,

304
00:22:22,225 --> 00:22:27,405
dann wird das bestimmte Gericht in Ihre Liste der Favoriten hinzugefügt.

305
00:22:27,405 --> 00:22:29,635
Wenn Ihr bevorzugtes Dokument nicht existiert,

306
00:22:29,635 --> 00:22:32,455
müssen Sie offensichtlich dieses bevorzugte Dokument erstellen.

307
00:22:32,455 --> 00:22:36,250
Das ist also auch Teil dieser POST-Operation.

308
00:22:36,250 --> 00:22:39,760
Wenn Sie also irgendwann feststellen, dass das Lieblingsdokument nicht existiert,

309
00:22:39,760 --> 00:22:41,770
müssen Sie zuerst das Lieblingsdokument erstellen und

310
00:22:41,770 --> 00:22:44,550
dann dieses Gericht dem bevorzugten Dokument hinzufügen.

311
00:22:44,550 --> 00:22:47,155
Das ist also ein wichtiger Punkt, der auch zu beachten ist.

312
00:22:47,155 --> 00:22:51,305
Wenn Sie einen POST für den Endpunkt der Schrägstrickfavoriten ausführen und

313
00:22:51,305 --> 00:22:53,290
das Favoritendokument nicht vorhanden ist,

314
00:22:53,290 --> 00:22:58,150
müssen Sie ein bevorzugtes Dokument erstellen und dann die Gerichte zu Ihrem bevorzugten Dokument hinzufügen.

315
00:22:58,150 --> 00:22:59,410
Wenn es bereits vorhanden ist,

316
00:22:59,410 --> 00:23:02,765
aktualisieren Sie nur dieses Favoritendokument.

317
00:23:02,765 --> 00:23:08,480
Dies ist also ein weiterer Hinweis darauf, wie Sie die POST-Operationen implementieren sollen.

318
00:23:08,480 --> 00:23:13,735
Wenn Sie eine DELETE-Operation für den Schrägstrich Favoriten Schrägstrich Dish ID ausführen

319
00:23:13,735 --> 00:23:18,640
, dann wird dieses spezielle Gericht aus der Liste der Favoriten gelöscht. Wenn Sie

320
00:23:18,640 --> 00:23:23,125
nun die POST- und DELETE-Operationen durchführen,

321
00:23:23,125 --> 00:23:28,110
sollten Sie sicherstellen, dass Sie keine Duplikate zur Dish-ID hinzufügen.

322
00:23:28,110 --> 00:23:33,165
Bevor Sie also eine Dish Objekt-ID zur Liste der Gerichte hinzufügen,

323
00:23:33,165 --> 00:23:39,490
überprüfen Sie immer, ob die Gericht ID bereits in der Liste der Gerichte vorhanden ist.

324
00:23:39,490 --> 00:23:45,430
Nun können Sie hier die Array-IndexOf-Methode verwenden, um zu überprüfen,

325
00:23:45,430 --> 00:23:52,395
ob eine Dokument-ID bereits in einem Array von Dokumenten vorhanden ist.

326
00:23:52,395 --> 00:23:56,725
Das ist also ein weiterer großer Hinweis darauf, wie Sie diesen Teil implementieren werden.

327
00:23:56,725 --> 00:23:59,610
Und die dritte Aufgabe ist natürlich,

328
00:23:59,610 --> 00:24:05,725
den Lieblings-Router auf den Schrägstrich Favoriten Endpunkte durch Aktualisierung der Datei app.js zu mounten.

329
00:24:05,725 --> 00:24:08,490
Der bevorzugte Router selbst wird im

330
00:24:08,490 --> 00:24:13,710
Routenordner in der Datei favoriterouter.js implementiert.

331
00:24:13,710 --> 00:24:17,010
Damit habe ich beschrieben, was Sie

332
00:24:17,010 --> 00:24:21,010
in der vierten und letzten Aufgabe implementieren sollen.

333
00:24:21,010 --> 00:24:24,015
Und ich hoffe, dass diese Aufgabe Ihnen helfen wird,

334
00:24:24,015 --> 00:24:32,685
alles zu konsolidieren,

335
00:24:32,685 --> 00:24:40,720
was Sie im Kurs gelernt haben, vom Entwurf des Express-Routers, über MongoDB und auch Mongos Schema und Modelle bis hin zur

336
00:24:40,720 --> 00:24:45,095
Durchführung der entsprechenden Benutzerauthentifizierung.

337
00:24:45,095 --> 00:24:47,685
Und wie ich bereits erwähnt habe,

338
00:24:47,685 --> 00:24:52,965
erhält nur ein authentifizierter Benutzer Zugriff auf seine Favoritenliste.

339
00:24:52,965 --> 00:24:55,920
Selbst der GET-Vorgang kann nur von

340
00:24:55,920 --> 00:25:00,750
einem authentifizierten Benutzer auf dem Endpunkt der Schrägstrickfavoriten ausgeführt werden.

341
00:25:00,750 --> 00:25:05,640
Und Sie würden nur die Favoriten für diesen bestimmten Benutzer abrufen.

342
00:25:05,640 --> 00:25:12,000
Sie können nicht zulassen, dass ein anderer Benutzer auf die Favoriten eines anderen Benutzers zugreifen kann.

343
00:25:12,000 --> 00:25:15,840
Das sagt Ihnen auch, wie Sie

344
00:25:15,840 --> 00:25:20,890
die Authentifizierung auf den verschiedenen Routenendpunkten durchführen sollen.

345
00:25:20,890 --> 00:25:27,595
Damit schließe ich die Beschreibung der Aufgaben im vierten Auftrag ab.

346
00:25:27,595 --> 00:25:31,790
Viel Spaß beim Abschluss dieser Aufgabe.