﻿1
00:00:01,010 --> 00:00:03,970
‫Kursleiter: In Ordnung, und jetzt, um diesen Teil abzuschließen,

2
00:00:03,970 --> 00:00:07,183
‫lassen Sie uns einige Fabriken erstellen, um Dokumente zu erhalten.

3
00:00:08,740 --> 00:00:11,963
‫Und fangen wir hier mit getOne an, okay?

4
00:00:12,910 --> 00:00:17,910
‫Exporte. getOne, aber dieses ist tatsächlich etwas kniffliger,

5
00:00:18,580 --> 00:00:20,690
‫und das liegt daran, dass wir

6
00:00:20,690 --> 00:00:22,710
‫im getTour-Handler eine Bevölkerung haben.

7
00:00:22,710 --> 00:00:24,803
‫Schauen wir uns das also an.

8
00:00:25,900 --> 00:00:30,090
‫Also, genau hier, in dieser haben wir diese hier, die

9
00:00:30,090 --> 00:00:32,570
‫sich von allen anderen Get-Handlern

10
00:00:32,570 --> 00:00:35,220
‫in den anderen Ressourcen unterscheidet, richtig?

11
00:00:35,220 --> 00:00:37,620
‫Aber gut, das ist

12
00:00:37,620 --> 00:00:40,670
‫nicht wirklich ein Problem, weil wir uns

13
00:00:40,670 --> 00:00:45,670
‫einfach erlauben, ein Optionsobjekt zum Auffüllen in unsere getOne-Funktion zu übergeben, okay?

14
00:00:48,030 --> 00:00:50,840
‫Anstatt das Modell einfach zu

15
00:00:50,840 --> 00:00:55,700
‫übergeben, werden wir auch auffüllen, also Optionen, in Ordnung.

16
00:00:57,890 --> 00:01:00,370
‫Von hier aus geben wir dann

17
00:01:00,370 --> 00:01:02,053
‫die normale Handlerfunktion zurück.

18
00:01:03,360 --> 00:01:06,563
‫Also, lass uns das alles noch einmal kopieren,

19
00:01:10,850 --> 00:01:11,683
‫in Ordnung.

20
00:01:13,730 --> 00:01:15,330
‫Das brauchen wir hier also nicht.

21
00:01:17,690 --> 00:01:19,743
‫Dann heißt es hier

22
00:01:23,140 --> 00:01:25,800
‫wie immer Modell und hier Doc.

23
00:01:25,800 --> 00:01:27,993
‫Nun, eigentlich hier, Dokument,

24
00:01:30,520 --> 00:01:33,850
‫und hier noch einmal Daten gleich doc.

25
00:01:33,850 --> 00:01:36,210
‫Nun müssen wir wegen dieses Auffüllens

26
00:01:36,210 --> 00:01:38,390
‫auch hier einige Änderungen vornehmen. Im

27
00:01:38,390 --> 00:01:41,610
‫Grunde erstellen wir also zuerst die Abfrage und

28
00:01:41,610 --> 00:01:44,950
‫dann, wenn es das Auffülloptionsobjekt gibt, fügen wir es

29
00:01:44,950 --> 00:01:46,550
‫dann der Abfrage

30
00:01:46,550 --> 00:01:50,810
‫hinzu und dann durch das Ende, warte auf diese Abfrage, okay?

31
00:01:50,810 --> 00:01:51,643
‫Sinn ergeben?

32
00:01:53,390 --> 00:01:55,890
‫Übersetzen wir also, was ich gerade gesagt habe.

33
00:01:55,890 --> 00:02:00,773
‫Die Abfrage ist also einfach gleich Model. findById, so,

34
00:02:02,770 --> 00:02:04,993
‫oder?

35
00:02:06,630 --> 00:02:10,980
‫Wenn es dann ein Optionsobjekt zum Auffüllen gibt,

36
00:02:10,980 --> 00:02:12,193
‫dann

37
00:02:13,420 --> 00:02:15,020
‫ist die Abfrage

38
00:02:15,020 --> 00:02:20,020
‫in diesem Fall eine Abfrage. mit den Optionen zum Auffüllen auffüllen, okay?

39
00:02:24,410 --> 00:02:27,370
‫Und dann warten wir endlich auf unsere Abfrage und

40
00:02:27,370 --> 00:02:28,853
‫speichern sie im Dokument.

41
00:02:30,010 --> 00:02:35,010
‫Also, warten Sie einfach so auf eine Abfrage, in Ordnung.

42
00:02:36,210 --> 00:02:38,660
‫Und so ist es tatsächlich.

43
00:02:38,660 --> 00:02:40,360
‫Also diese Logik, die

44
00:02:40,360 --> 00:02:43,200
‫wir hier haben, die Abfrage nicht sofort abzuwarten, sondern

45
00:02:43,200 --> 00:02:45,300
‫sie einfach in einer Variablen zu speichern,

46
00:02:45,300 --> 00:02:48,220
‫damit wir sie dann im nächsten Schritt manipulieren können.

47
00:02:48,220 --> 00:02:50,770
‫Wir haben diese Art von Dingen tatsächlich

48
00:02:50,770 --> 00:02:54,020
‫schon früher gemacht, als wir unsere API-Funktionen entwickelt haben, oder?

49
00:02:54,020 --> 00:02:57,210
‫Erst am Ende, wenn die gesamte Abfrage fertig ist,

50
00:02:57,210 --> 00:03:00,563
‫werden wir sie dann abwarten und irgendwo in einer Variablen speichern.

51
00:03:02,260 --> 00:03:06,600
‫Nun, lass uns fortfahren und dieses wirklich überall verwenden, beginnend

52
00:03:06,600 --> 00:03:08,803
‫natürlich mit der Tour.

53
00:03:10,470 --> 00:03:12,170
‫getTour wird nun werkseitig

54
00:03:13,670 --> 00:03:15,473
‫sein. getOne,

55
00:03:18,260 --> 00:03:20,900
‫und übergeben Sie das Tour-

56
00:03:20,900 --> 00:03:24,440
‫und Popup-Options-Objekt, erinnern Sie sich daran?

57
00:03:24,440 --> 00:03:29,440
‫Was wir also tun werden, ist Weg und Bewertungen zu sagen.

58
00:03:31,590 --> 00:03:35,540
‫Denken Sie also daran, dass die Pfadeigenschaft im Grunde das

59
00:03:35,540 --> 00:03:37,720
‫Feld ist, das wir

60
00:03:37,720 --> 00:03:40,950
‫ausfüllen möchten, und dann können wir auch select

61
00:03:40,950 --> 00:03:43,750
‫angeben. Denken Sie also an dieses, wo

62
00:03:43,750 --> 00:03:47,770
‫wir angeben, welches der Felder wir tatsächlich erhalten möchten, richtig?

63
00:03:47,770 --> 00:03:48,603
‫Aber in

64
00:03:48,603 --> 00:03:50,050
‫diesem Fall haben wir nichts

65
00:03:50,050 --> 00:03:51,900
‫davon, also belassen wir es einfach so.

66
00:03:53,180 --> 00:03:57,723
‫Und jetzt können wir tatsächlich fortfahren und all dies löschen.

67
00:03:58,910 --> 00:04:00,570
‫So großartig.

68
00:04:00,570 --> 00:04:03,473
‫Und um sicher zu gehen, lassen Sie uns das schnell testen.

69
00:04:06,200 --> 00:04:07,963
‫Wir werden also eine bestimmte Tour machen,

70
00:04:10,880 --> 00:04:12,630
‫und tatsächlich funktioniert es immer noch.

71
00:04:12,630 --> 00:04:15,503
‫Mal sehen, ob dieser einige Bewertungen hat.

72
00:04:16,630 --> 00:04:19,210
‫Oh ja, das tut es tatsächlich,

73
00:04:19,210 --> 00:04:22,993
‫und Sie sehen, dass der Bevölkerungsprozess auch noch funktioniert.

74
00:04:24,920 --> 00:04:28,177
‫Also, das war erfolgreich, würde ich sagen.

75
00:04:28,177 --> 00:04:30,870
‫Lassen Sie uns dieses getOne nun auch in

76
00:04:30,870 --> 00:04:32,710
‫allen anderen Ressourcen verwenden.

77
00:04:32,710 --> 00:04:36,833
‫Also, der Benutzercontroller hier, wo wir ihn haben, mal sehen, wo

78
00:04:38,200 --> 00:04:40,603
‫er ist, ah, hier unten.

79
00:04:43,760 --> 00:04:47,047
‫Sagen wir Fabrik. getOne, aber

80
00:04:48,930 --> 00:04:52,290
‫nur mit dem Benutzermodell und

81
00:04:52,290 --> 00:04:54,343
‫kein Optionsobjekt auffüllen.

82
00:04:56,900 --> 00:04:58,740
‫Okay, und da wir hier

83
00:04:58,740 --> 00:05:02,030
‫sind, ändern wir hier eigentlich nur die Fehlermeldung

84
00:05:02,030 --> 00:05:03,850
‫für create user,

85
00:05:03,850 --> 00:05:07,583
‫also ist diese Route nicht definiert, wird es nie sein,

86
00:05:08,980 --> 00:05:11,703
‫und verwenden Sie stattdessen bitte die Anmeldung.

87
00:05:17,010 --> 00:05:19,110
‫Als nächstes und

88
00:05:19,110 --> 00:05:23,410
‫schließlich das gleiche für die Bewertungen im Grunde.

89
00:05:23,410 --> 00:05:25,063
‫Also Exporte. getReview ist

90
00:05:29,018 --> 00:05:31,427
‫gleich ab Werk. getOne-Rezension, und

91
00:05:35,450 --> 00:05:40,193
‫ich glaube, wir haben (murmelt) unsere Routen noch nicht.

92
00:05:41,360 --> 00:05:46,357
‫Und das tun wir in der Tat nicht, also fügen Sie dies hier ganz

93
00:05:46,357 --> 00:05:49,107
‫schnell hinzu, reviewController. GetReview, okay?

94
00:05:54,300 --> 00:05:56,423
‫Testen wir auch noch schnell dieses

95
00:05:58,870 --> 00:06:01,300
‫hier, nur weil ich es dann auch hier

96
00:06:01,300 --> 00:06:03,203
‫zu Postman hinzufügen möchte, okay?

97
00:06:04,950 --> 00:06:08,453
‫Also einfach dieses kopieren, weil es ähnlich ist, und dann

98
00:06:10,560 --> 00:06:12,393
‫ist es tatsächlich get.

99
00:06:15,300 --> 00:06:20,300
‫Und ja, funktioniert einwandfrei, speichere es hier in Bewertungen und hol dir

100
00:06:23,730 --> 00:06:24,987
‫eine Bewertung ab.

101
00:06:28,258 --> 00:06:30,560
‫Alles klar,

102
00:06:30,560 --> 00:06:35,560
‫jetzt fehlt nur noch eine getAll-Factory-Funktion, oder?

103
00:06:36,070 --> 00:06:37,320
‫Also,

104
00:06:39,200 --> 00:06:42,380
‫um dieses getAllTours zu ersetzen, getAllUsers,

105
00:06:42,380 --> 00:06:46,003
‫das wir hier auch irgendwo haben sollten,

106
00:06:46,970 --> 00:06:50,530
‫also getAllUsers, und auch getAllReviews, also kopieren

107
00:06:50,530 --> 00:06:53,540
‫wir es hier noch einmal vom

108
00:06:53,540 --> 00:06:56,380
‫Tour-Controller, denn eigentlich ist dies

109
00:06:56,380 --> 00:06:59,920
‫die wirklich vollständige, weil sie alles hat

110
00:06:59,920 --> 00:07:03,390
‫diese API-Funktionen, und so erhalten nach dem

111
00:07:03,390 --> 00:07:07,083
‫Erstellen unserer getAll-Factory-Funktion alle drei Ressourcen diese API-Funktionen.

112
00:07:09,299 --> 00:07:12,840
‫Also wieder alles kopieren,

113
00:07:15,230 --> 00:07:17,433
‫exportieren. getAll,

114
00:07:24,630 --> 00:07:28,390
‫und jetzt müssen wir diese API-Funktionen hier

115
00:07:28,390 --> 00:07:29,743
‫tatsächlich benötigen,

116
00:07:31,690 --> 00:07:35,780
‫und tatsächlich können wir sie von hier entfernen,

117
00:07:35,780 --> 00:07:38,320
‫weil wir sie nicht mehr

118
00:07:38,320 --> 00:07:43,277
‫benötigen, weil wir dies jetzt an die Handler-Factory übertragen, oder?

119
00:07:45,360 --> 00:07:49,403
‫Jetzt müssen wir hier nur noch wie immer

120
00:07:50,370 --> 00:07:53,243
‫durch model ersetzen und dann

121
00:07:56,300 --> 00:07:58,703
‫hier doc und data.

122
00:08:01,700 --> 00:08:03,253
‫Nun gut, perfekt.

123
00:08:07,480 --> 00:08:09,133
‫Mal sehen,

124
00:08:13,947 --> 00:08:17,453
‫ob das funktioniert, getAll with Tour.

125
00:08:22,530 --> 00:08:25,530
‫Und jetzt möchte ich wirklich sehen, ob

126
00:08:25,530 --> 00:08:28,300
‫dies mit all diesen Funktionen noch

127
00:08:28,300 --> 00:08:31,380
‫funktioniert, und so ist es hier, getAll

128
00:08:31,380 --> 00:08:33,830
‫Tours, und so fügen

129
00:08:33,830 --> 00:08:38,467
‫wir unseren Abfragestring hier hinzu und sagen wir Dauer größer oder

130
00:08:43,040 --> 00:08:47,063
‫gleich als sagen wir 10, und sortieren nach Preis.

131
00:08:50,470 --> 00:08:53,133
‫Okay, und so erhalten wir hier zwei Ergebnisse.

132
00:08:56,170 --> 00:08:58,490
‫Okay, es funktioniert nicht.

133
00:08:58,490 --> 00:09:03,030
‫Wie auch immer, wir erhalten hier die beiden (kichern) Ergebnisse,

134
00:09:03,030 --> 00:09:06,290
‫und sie haben beide eine Dauer von

135
00:09:06,290 --> 00:09:09,360
‫mehr als 10, und der

136
00:09:09,360 --> 00:09:13,420
‫Preis beträgt 1497 und der zweite ist höher, okay?

137
00:09:13,420 --> 00:09:15,810
‫Lassen Sie es uns hier auf sieben setzen,

138
00:09:15,810 --> 00:09:17,673
‫damit wir etwas mehr Ergebnisse erhalten.

139
00:09:19,949 --> 00:09:21,249
‫Okay, und jetzt bekommen wir fünf.

140
00:09:23,560 --> 00:09:27,480
‫Okay, machen wir jetzt dasselbe für die Bewertungen, denn ich

141
00:09:28,910 --> 00:09:32,440
‫freue mich sehr darauf, diese API-Funktionen auch in

142
00:09:32,440 --> 00:09:34,350
‫den Bewertungen zu testen.

143
00:09:34,350 --> 00:09:36,510
‫Ein Problem, das wir

144
00:09:36,510 --> 00:09:39,740
‫hier haben, ist, dass dieser Route-Handler tatsächlich diese

145
00:09:40,706 --> 00:09:44,610
‫beiden Codezeilen hat, die alle anderen getAll-Handler nicht haben, okay?

146
00:09:44,610 --> 00:09:47,730
‫Aber was wir hier tun werden, ist, diesen Code

147
00:09:47,730 --> 00:09:50,730
‫einfach auch in unsere Handler-Factory zu kopieren, okay?

148
00:09:50,730 --> 00:09:52,150
‫Das ist irgendwie

149
00:09:52,150 --> 00:09:56,040
‫ein Hack, weil wir diesen wirklich nur für getAll-Reviews brauchen,

150
00:09:56,040 --> 00:09:59,210
‫aber das zu umgehen wäre hier in dieser

151
00:09:59,210 --> 00:10:02,500
‫Situation etwas zu viel Arbeit, und ich möchte es

152
00:10:02,500 --> 00:10:05,623
‫hier einfach nur einfach halten, in Ordnung.

153
00:10:07,010 --> 00:10:08,593
‫Also, lass

154
00:10:10,530 --> 00:10:15,150
‫uns das hier kopieren, und ich füge hier einen

155
00:10:16,500 --> 00:10:21,500
‫Kommentar hinzu, um verschachtelte getReviews on Tour zu ermöglichen, okay?

156
00:10:24,980 --> 00:10:29,533
‫Und so diesen Filter, wir geben ihn dann auch hier rein, okay?

157
00:10:31,260 --> 00:10:33,363
‫Also wieder, das ist ein kleiner

158
00:10:35,400 --> 00:10:37,460
‫Hack, aber ich werde

159
00:10:37,460 --> 00:10:41,770
‫es hier so belassen, weil ich es für vernünftig halte, in Ordnung.

160
00:10:41,770 --> 00:10:44,223
‫Wie auch immer, lass uns das jetzt

161
00:10:45,260 --> 00:10:48,373
‫loswerden, also Fabrik. GetAll und Überprüfung, OK?

162
00:10:54,476 --> 00:10:57,493
‫Lassen Sie uns das hier neben all den anderen ablegen.

163
00:11:02,430 --> 00:11:03,430
‫Und jetzt,

164
00:11:03,430 --> 00:11:07,340
‫wie Sie sehen, brauchen wir dieses catchAsync hier eigentlich nicht mehr,

165
00:11:07,340 --> 00:11:09,200
‫also werde ich es hier

166
00:11:09,200 --> 00:11:12,300
‫auskommentieren, denn wer weiß, vielleicht brauchen wir es

167
00:11:12,300 --> 00:11:15,523
‫in Zukunft für eine andere Middleware-Funktion hier, alle rechts.

168
00:11:16,870 --> 00:11:18,660
‫Das sieht also schön

169
00:11:18,660 --> 00:11:21,783
‫und sauber aus, und testen wir jetzt die getAll-Rezensionen.

170
00:11:23,420 --> 00:11:28,420
‫In Ordnung, also speichern wir auch hier die Änderungen.

171
00:11:30,240 --> 00:11:32,310
‫Diese brauchen wir

172
00:11:32,310 --> 00:11:36,143
‫nicht, aber ich möchte eigentlich alle Bewertungen bekommen.

173
00:11:37,530 --> 00:11:39,743
‫Im Moment haben wir also

174
00:11:40,980 --> 00:11:43,430
‫vier Bewertungen, und versuchen wir nun, nur

175
00:11:43,430 --> 00:11:46,853
‫nach Bewertungen mit einer Bewertung von beispielsweise vier zu filtern.

176
00:11:48,860 --> 00:11:53,860
‫Also Abfragestring, Bewertung gleich vier.

177
00:11:57,820 --> 00:12:00,170
‫Oh, und es funktioniert tatsächlich,

178
00:12:00,170 --> 00:12:02,850
‫so schön, das ist wirklich schön.

179
00:12:02,850 --> 00:12:06,780
‫So erhalten wir einfach Zugriff auf all diese API-Funktionen

180
00:12:06,780 --> 00:12:11,780
‫wie Filtern, Sortieren, Paginieren und all die guten Dinge, die wir vor

181
00:12:11,810 --> 00:12:13,988
‫langer Zeit im Kurs implementiert

182
00:12:13,988 --> 00:12:15,890
‫haben (kichert), oder?

183
00:12:15,890 --> 00:12:17,380
‫Und ich möchte

184
00:12:17,380 --> 00:12:21,423
‫auch sicherstellen, dass dieses getAll reviews on Tour auch noch funktioniert.

185
00:12:22,300 --> 00:12:24,120
‫Lassen Sie uns das also

186
00:12:24,120 --> 00:12:26,893
‫überprüfen, und ja, Sie sehen, dass es tatsächlich so ist.

187
00:12:28,050 --> 00:12:30,380
‫Die Tour-ID, die wir hier

188
00:12:30,380 --> 00:12:34,490
‫haben, ist also genau die richtige hier und genau hier.

189
00:12:34,490 --> 00:12:36,840
‫Also, das funktioniert auch

190
00:12:36,840 --> 00:12:39,580
‫noch, und so verwenden wir

191
00:12:39,580 --> 00:12:44,060
‫endlich auch getAll für den Benutzer-Controller, in Ordnung.

192
00:12:44,060 --> 00:12:46,733
‫Also im Grunde einfach das

193
00:12:47,760 --> 00:12:52,760
‫ersetzen, also ab Werk. getAll-Benutzer, alles klar.

194
00:12:55,180 --> 00:12:57,174
‫Und lasst uns dieses

195
00:12:57,174 --> 00:13:01,483
‫hier in die Nähe der anderen stellen, in Ordnung.

196
00:13:04,960 --> 00:13:06,910
‫Und dann auch noch dieses,

197
00:13:06,910 --> 00:13:09,650
‫also im Grunde alle diese von

198
00:13:09,650 --> 00:13:11,590
‫Fabrikfunktionen zusammen generiert

199
00:13:11,590 --> 00:13:14,383
‫und dann alle anderen einfach darüber.

200
00:13:15,800 --> 00:13:18,580
‫Okay, machen wir das gleiche hier, dieser ist

201
00:13:18,580 --> 00:13:20,290
‫schon schön und sauber, und

202
00:13:20,290 --> 00:13:23,153
‫das gleiche für den Tour-Controller, also was haben

203
00:13:24,170 --> 00:13:25,620
‫wir noch hier?

204
00:13:27,430 --> 00:13:29,263
‫Diesen können wir loswerden,

205
00:13:30,690 --> 00:13:34,000
‫und, okay, ich finde, er sieht so gut aus.

206
00:13:34,000 --> 00:13:37,150
‫Auch hier können wir dieses Stück Code auskommentieren,

207
00:13:37,150 --> 00:13:40,410
‫da wir es zumindest im Moment nicht mehr benötigen.

208
00:13:40,410 --> 00:13:44,623
‫Also, um es hier noch einmal mit den Benutzern zu testen,

209
00:13:45,640 --> 00:13:47,423
‫lassen Sie uns alle

210
00:13:48,890 --> 00:13:50,973
‫zusammenbringen, und tatsächlich sind sie hier.

211
00:13:53,320 --> 00:13:55,960
‫Wir können jetzt auch sagen,

212
00:13:55,960 --> 00:13:58,873
‫dass wir nur die mit der

213
00:14:00,490 --> 00:14:03,760
‫Rolle des Benutzers wollen, und das funktioniert auch.

214
00:14:03,760 --> 00:14:07,500
‫Großartig, und damit ist dieser Teil der Erstellung von

215
00:14:07,500 --> 00:14:10,170
‫Handler-Factory-Funktionen eigentlich abgeschlossen, und dies war

216
00:14:10,170 --> 00:14:14,300
‫wirklich ein großer Fortschritt in unserem Projekt. Denken Sie also

217
00:14:14,300 --> 00:14:16,030
‫daran, dass wir

218
00:14:16,030 --> 00:14:18,710
‫etwas später auch eine Buchungsressource erstellen werden,

219
00:14:18,710 --> 00:14:22,080
‫und Sie sehen, dass wir wahrscheinlich Wir werden

220
00:14:22,080 --> 00:14:25,070
‫in der Lage sein, die Haupt-API für

221
00:14:25,070 --> 00:14:27,310
‫diese Buchungen in etwa fünf

222
00:14:27,310 --> 00:14:32,310
‫Sekunden oder so zu erstellen, einfach mit diesen fünf Fabrikfunktionen, in Ordnung.

223
00:14:32,350 --> 00:14:34,750
‫Wie auch immer, gute Arbeit, tolle Arbeit, und

224
00:14:34,750 --> 00:14:36,683
‫wir sehen uns im nächsten.

