﻿1
00:00:01,110 --> 00:00:03,330
‫Sprecher: In diesem Video werden

2
00:00:03,330 --> 00:00:06,180
‫wir über die zweite Art von Mongoose-Middleware

3
00:00:06,180 --> 00:00:08,133
‫sprechen, die Abfrage-Middleware.

4
00:00:09,690 --> 00:00:12,169
‫Und wie der Name schon

5
00:00:12,169 --> 00:00:15,720
‫sagt, ermöglicht uns die Abfrage-Middleware, Funktionen vor oder nach

6
00:00:15,720 --> 00:00:18,360
‫der Ausführung einer bestimmten Abfrage auszuführen.

7
00:00:18,360 --> 00:00:21,020
‫Und so fügen wir jetzt einen

8
00:00:21,020 --> 00:00:23,730
‫Pre-Find-Hook hinzu, also im Grunde eine Middleware,

9
00:00:23,730 --> 00:00:26,493
‫die ausgeführt wird, bevor eine Suchabfrage ausgeführt wird.

10
00:00:29,780 --> 00:00:31,740
‫Also fügen wir hier einen weiteren Kommentar hinzu.

11
00:00:31,740 --> 00:00:35,283
‫Dies ist also eine Abfrage-Middleware.

12
00:00:36,270 --> 00:00:38,760
‫Und natürlich funktioniert es ganz ähnlich

13
00:00:38,760 --> 00:00:39,763
‫wie zuvor.

14
00:00:41,320 --> 00:00:43,950
‫Also das tourSchema und dann pre, und

15
00:00:43,950 --> 00:00:46,280
‫hier definieren wir den Hook, der

16
00:00:46,280 --> 00:00:47,557
‫"find.

17
00:00:50,110 --> 00:00:52,900
‫"Also, Funktion, und wieder haben wir

18
00:00:52,900 --> 00:00:55,540
‫Zugriff auf die nächste Funktion.

19
00:00:55,540 --> 00:00:57,870
‫Und eigentlich fangen wir damit an, dass

20
00:00:57,870 --> 00:01:00,880
‫wir es hier am Ende nennen, damit wir es nicht vergessen.

21
00:01:00,880 --> 00:01:03,310
‫Okay, und Sie sehen, dass es

22
00:01:03,310 --> 00:01:05,680
‫genauso aussieht wie die andere Middleware,

23
00:01:05,680 --> 00:01:07,170
‫der andere Pre-Hook.

24
00:01:07,170 --> 00:01:10,320
‫Der einzige Unterschied hier ist wirklich dieser

25
00:01:10,320 --> 00:01:12,360
‫Find-Hook, der diese Abfrage-Middleware und

26
00:01:12,360 --> 00:01:14,320
‫keine Dokument-Middleware macht.

27
00:01:14,320 --> 00:01:15,153
‫Gut?

28
00:01:15,153 --> 00:01:17,040
‫Der große Unterschied besteht darin,

29
00:01:17,040 --> 00:01:20,910
‫dass das Schlüsselwort this jetzt auf die aktuelle Abfrage und nicht

30
00:01:20,910 --> 00:01:22,700
‫auf das aktuelle Dokument

31
00:01:22,700 --> 00:01:25,580
‫zeigt, da wir hier keine Dokumente wirklich verarbeiten.

32
00:01:25,580 --> 00:01:28,370
‫Wir werden wirklich eine Anfrage bearbeiten.

33
00:01:28,370 --> 00:01:29,203
‫Okay?

34
00:01:29,203 --> 00:01:32,160
‫Und der Anwendungsfall, den wir hier machen werden, ist dieser.

35
00:01:32,160 --> 00:01:34,380
‫Nehmen wir also an,

36
00:01:34,380 --> 00:01:36,670
‫wir können geheime Touren in unserer

37
00:01:36,670 --> 00:01:39,760
‫Datenbank haben, beispielsweise für Touren, die nur intern

38
00:01:39,760 --> 00:01:43,160
‫angeboten werden, oder für eine sehr kleine VIP-Gruppe, von

39
00:01:43,160 --> 00:01:45,420
‫der die Öffentlichkeit nichts wissen sollte.

40
00:01:45,420 --> 00:01:47,327
‫Da diese Touren geheim sind,

41
00:01:47,327 --> 00:01:51,080
‫möchten wir nicht, dass die geheimen Touren jemals in

42
00:01:51,080 --> 00:01:52,510
‫den Ergebnisausgaben erscheinen.

43
00:01:52,510 --> 00:01:53,510
‫Rechts?

44
00:01:53,510 --> 00:01:56,950
‫Was wir also tun werden, ist ein geheimes Tour-Feld

45
00:01:56,950 --> 00:02:00,780
‫zu erstellen und dann nur nach Touren abzufragen, die nicht geheim sind.

46
00:02:00,780 --> 00:02:01,690
‫Gut?

47
00:02:01,690 --> 00:02:02,763
‫Also, lass uns das tun.

48
00:02:04,160 --> 00:02:07,103
‫Beginnen Sie, indem Sie hier hinzufügen, und lassen Sie es uns am Ende gleich machen.

49
00:02:11,447 --> 00:02:15,114
‫secretTour, also sollte der Typ ein Boolean sein, und ich denke, dies

50
00:02:16,560 --> 00:02:17,980
‫ist das erste Mal,

51
00:02:17,980 --> 00:02:19,710
‫dass wir tatsächlich einen Boolean

52
00:02:19,710 --> 00:02:22,030
‫verwenden, also wäre dies entweder wahr oder falsch.

53
00:02:22,030 --> 00:02:23,852
‫Wenn es also wahr ist,

54
00:02:23,852 --> 00:02:25,770
‫ist es eine geheime Tour, und wir

55
00:02:25,770 --> 00:02:29,133
‫möchten nicht, dass es angezeigt wird, und standardmäßig ist es falsch.

56
00:02:30,570 --> 00:02:31,403
‫Gut?

57
00:02:31,403 --> 00:02:35,000
‫Und so sind die Touren im Grunde normalerweise nicht geheim.

58
00:02:35,000 --> 00:02:35,950
‫Okay.

59
00:02:35,950 --> 00:02:39,740
‫Als nächstes erstellen wir eine geheime Tour,

60
00:02:40,900 --> 00:02:44,610
‫damit wir sie testen können, okay?

61
00:02:44,610 --> 00:02:49,610
‫Nennen wir das hier also die Super Secret Tour.

62
00:02:50,530 --> 00:02:51,880
‫All dies spielt

63
00:02:54,130 --> 00:02:58,603
‫keine Rolle, und lassen Sie mich nur sagen, dass secretTour tatsächlich wahr ist.

64
00:02:59,700 --> 00:03:01,020
‫Okay?

65
00:03:01,020 --> 00:03:02,443
‫Hier speichern...

66
00:03:03,480 --> 00:03:05,980
‫Und, äh, wo ist das?

67
00:03:05,980 --> 00:03:08,520
‫Ja. SecretTour ist also wahr.

68
00:03:08,520 --> 00:03:10,750
‫Und lass uns jetzt tatsächlich zu Compass

69
00:03:10,750 --> 00:03:13,783
‫gehen und all diese anderen Touren löschen, die wir dort hatten.

70
00:03:15,600 --> 00:03:17,483
‫Also, lass uns das neu laden ...

71
00:03:18,890 --> 00:03:22,813
‫Und dann hätten wir hier unten...

72
00:03:24,470 --> 00:03:27,890
‫Ja, diese Testtour hier, das können wir löschen.

73
00:03:27,890 --> 00:03:29,613
‫Noch eine Testtour...

74
00:03:30,740 --> 00:03:32,540
‫Also all diese Unordnung hier, im

75
00:03:33,730 --> 00:03:35,530
‫Grunde wollen wir sie loswerden.

76
00:03:35,530 --> 00:03:37,600
‫Wir bewahren die SecretTour hier nur

77
00:03:37,600 --> 00:03:40,010
‫auf, damit wir jetzt damit experimentieren können.

78
00:03:40,010 --> 00:03:43,170
‫Okay, und Sie sehen hier, dass secretTour auf true gesetzt

79
00:03:43,170 --> 00:03:44,530
‫ist, während die anderen

80
00:03:44,530 --> 00:03:46,180
‫natürlich dieses Attribut nicht haben,

81
00:03:46,180 --> 00:03:48,110
‫denn als wir sie erstellt haben,

82
00:03:48,110 --> 00:03:49,993
‫hatten wir die secretTour noch nicht.

83
00:03:51,780 --> 00:03:54,060
‫Also, kurz bevor wir anfangen, zurück in

84
00:03:54,060 --> 00:03:57,539
‫Postman, lassen Sie uns bestätigen, dass dies tatsächlich die letzte Tour

85
00:03:57,539 --> 00:04:01,230
‫hier ist, und tatsächlich ist es nicht die letzte Tour, also

86
00:04:01,230 --> 00:04:02,660
‫wo ist sie?

87
00:04:02,660 --> 00:04:03,570
‫Oh, es ist das erste.

88
00:04:03,570 --> 00:04:05,950
‫Also hier haben wir die Super Secret

89
00:04:05,950 --> 00:04:07,483
‫Tour natürlich wahr gemacht.

90
00:04:08,360 --> 00:04:12,010
‫Gut? Gehen wir also jetzt zurück und

91
00:04:12,010 --> 00:04:13,880
‫führen wir die Abfrage wie gerade

92
00:04:13,880 --> 00:04:15,580
‫am Anfang gesagt aus.

93
00:04:15,580 --> 00:04:18,350
‫Denken Sie also noch einmal daran, dass dies

94
00:04:18,350 --> 00:04:20,780
‫hier jetzt ein Abfrageobjekt ist, in Ordnung?

95
00:04:20,780 --> 00:04:23,230
‫Und so können wir alle Methoden verketten,

96
00:04:23,230 --> 00:04:25,250
‫die wir für Abfragen haben.

97
00:04:25,250 --> 00:04:29,220
‫Und so fügt man hier einfach eine Find-Methode hinzu

98
00:04:29,220 --> 00:04:31,260
‫und wählt dann im

99
00:04:31,260 --> 00:04:36,070
‫Grunde alle Dokumente aus, bei denen secretTour nicht wahr ist, okay?

100
00:04:36,070 --> 00:04:40,540
‫Also geheimTour ...

101
00:04:40,540 --> 00:04:43,530
‫Und dann ist nicht gleich wahr.

102
00:04:43,530 --> 00:04:45,710
‫Und ich mache es so,

103
00:04:45,710 --> 00:04:49,170
‫weil die Editoren derzeit nicht auf false gesetzt sind.

104
00:04:49,170 --> 00:04:51,120
‫Sie haben dieses Attribut einfach nicht.

105
00:04:52,090 --> 00:04:53,100
‫Gut?

106
00:04:53,100 --> 00:04:56,210
‫Okay, dann testen wir es jetzt noch einmal.

107
00:04:56,210 --> 00:04:58,263
‫Und so sollte es jetzt hier weg sein.

108
00:04:59,220 --> 00:05:01,483
‫Und tatsächlich ist es nicht mehr hier.

109
00:05:02,320 --> 00:05:05,570
‫Okay, wir haben alle Touren, die nicht geheim sind, aber

110
00:05:05,570 --> 00:05:07,290
‫nicht die geheime Tour.

111
00:05:07,290 --> 00:05:08,943
‫Und ich sehe jetzt, dass

112
00:05:08,943 --> 00:05:11,370
‫wir SecretTour hier tatsächlich auf false gesetzt

113
00:05:11,370 --> 00:05:13,850
‫haben, aber das ist wirklich nur eine

114
00:05:13,850 --> 00:05:17,913
‫Mungo-Sache, also schauen wir uns hier noch einmal Compass an und laden

115
00:05:18,830 --> 00:05:19,753
‫sie neu.

116
00:05:20,800 --> 00:05:22,920
‫Sie sehen also, dass secretTour in

117
00:05:22,920 --> 00:05:25,450
‫der Datenbank tatsächlich nicht auf false gesetzt ist.

118
00:05:25,450 --> 00:05:27,890
‫Mongoose fügt das einfach hinzu, weil wir es in unserem

119
00:05:27,890 --> 00:05:30,478
‫Schema als Standard haben und es nicht in der Datenbank ist.

120
00:05:30,478 --> 00:05:34,360
‫Und so ist es im Grunde genommen, es trotzdem dort zu platzieren.

121
00:05:34,360 --> 00:05:37,150
‫Sie sehen also, dass wir tatsächlich 11

122
00:05:37,150 --> 00:05:40,710
‫Dokumente haben, aber hier in Postman erhalten wir nur zehn Ergebnisse.

123
00:05:40,710 --> 00:05:41,600
‫Und das

124
00:05:41,600 --> 00:05:45,360
‫liegt natürlich daran, dass unsere Secret Tour im Grunde herausgefiltert wird.

125
00:05:45,360 --> 00:05:46,193
‫Okay?

126
00:05:46,193 --> 00:05:47,910
‫Versuchen wir also noch einmal zu

127
00:05:47,910 --> 00:05:49,320
‫verstehen, was wirklich passiert.

128
00:05:49,320 --> 00:05:51,730
‫Sobald wir diese Route erreicht haben, sehen

129
00:05:51,730 --> 00:05:53,170
‫wir uns hier

130
00:05:53,170 --> 00:05:55,313
‫mit der get-Methode an, was passiert.

131
00:05:57,520 --> 00:06:00,340
‫Was also passiert, ist, dass wir eine Abfrage

132
00:06:00,340 --> 00:06:02,700
‫mit tour erstellen. finden.

133
00:06:02,700 --> 00:06:03,533
‫Okay?

134
00:06:03,533 --> 00:06:05,900
‫Und dann verketten wir natürlich all diese

135
00:06:05,900 --> 00:06:08,660
‫Methoden, wie wir in einer der letzten Vorlesungen

136
00:06:08,660 --> 00:06:09,790
‫besprochen haben,

137
00:06:09,790 --> 00:06:13,770
‫und führen diese Abfrage dann am Ende hier mit await aus.

138
00:06:13,770 --> 00:06:15,280
‫Rechts? Erinnere dich daran?

139
00:06:15,280 --> 00:06:17,460
‫Hier führen wir also die Abfrage aus.

140
00:06:17,460 --> 00:06:20,030
‫Aber bevor sie

141
00:06:20,030 --> 00:06:24,790
‫tatsächlich ausgeführt wird, wird unsere Pre-Find-Middleware hier ausgeführt.

142
00:06:24,790 --> 00:06:25,623
‫Okay?

143
00:06:25,623 --> 00:06:27,873
‫Und es wird ausgeführt, weil es gefunden

144
00:06:27,873 --> 00:06:30,270
‫wird, genau wie wir es hier verwendet haben.

145
00:06:30,270 --> 00:06:31,103
‫Rechts?

146
00:06:31,103 --> 00:06:33,020
‫Wir erstellen also eine

147
00:06:33,020 --> 00:06:36,570
‫Suchabfrage, und daher wird dann der Suchhook ausgeführt.

148
00:06:36,570 --> 00:06:39,420
‫Da es sich hier um eine Abfrage-Middleware handelt, verweist

149
00:06:39,420 --> 00:06:41,630
‫das Schlüsselwort this auf die Abfrage.

150
00:06:41,630 --> 00:06:43,670
‫An diese Abfrage können wir

151
00:06:43,670 --> 00:06:46,230
‫dann noch eine weitere Suchmethode verketten, oder?

152
00:06:46,230 --> 00:06:49,160
‫Und dort filtern wir dann die secretTour

153
00:06:49,160 --> 00:06:50,930
‫mit diesem Filterobjekt heraus.

154
00:06:50,930 --> 00:06:51,763
‫Okay?

155
00:06:51,763 --> 00:06:54,280
‫Also im Grunde gesagt, dass wir nur

156
00:06:54,280 --> 00:06:57,450
‫Touren wollen, bei denen die secretTour nicht gleich wahr ist.

157
00:06:57,450 --> 00:06:59,120
‫Und es würde eigentlich

158
00:06:59,120 --> 00:07:00,979
‫genauso funktionieren, wenn wir hier einfach

159
00:07:00,979 --> 00:07:03,790
‫falsch sagen würden, aber ich finde es so sauberer.

160
00:07:03,790 --> 00:07:07,660
‫Okay, jetzt müssen wir nur noch eine Sache reparieren,

161
00:07:07,660 --> 00:07:10,140
‫denn im Moment läuft diese

162
00:07:10,140 --> 00:07:13,010
‫Middleware für find, aber nicht für find1.

163
00:07:13,010 --> 00:07:13,843
‫Okay?

164
00:07:13,843 --> 00:07:17,023
‫Lassen Sie mich Ihnen also das Problem zeigen, das wir damit bekommen könnten.

165
00:07:18,270 --> 00:07:23,120
‫Also, äh, nehmen wir die ID der Secret Tour.

166
00:07:23,120 --> 00:07:24,570
‫Wir haben also

167
00:07:24,570 --> 00:07:29,570
‫die Secret Tour hier, und das ist ihre ID, und wenn wir also eine Tour

168
00:07:31,370 --> 00:07:35,040
‫bekommen, dann sollte uns das die Super Secret Tour hier geben.

169
00:07:35,040 --> 00:07:35,873
‫Rechts?

170
00:07:35,873 --> 00:07:37,383
‫Sie sehen also, dass

171
00:07:37,383 --> 00:07:39,470
‫dieser Filter, den wir gerade in die

172
00:07:39,470 --> 00:07:41,630
‫Middleware eingebaut haben, für diesen Befehl nicht funktioniert.

173
00:07:41,630 --> 00:07:42,463
‫Okay?

174
00:07:42,463 --> 00:07:45,640
‫Und das liegt daran, dass die Handle-Funktion

175
00:07:45,640 --> 00:07:47,360
‫für diese Route,

176
00:07:47,360 --> 00:07:51,560
‫wie Sie sich vielleicht erinnern, findByID verwendet, das im Hintergrund

177
00:07:51,560 --> 00:07:55,290
‫find1 ist und sich daher von find unterscheidet.

178
00:07:55,290 --> 00:07:56,242
‫Gut?

179
00:07:56,242 --> 00:08:01,242
‫Daher müssen wir dieselbe Middleware auch für find1 angeben.

180
00:08:01,750 --> 00:08:03,610
‫Nun gibt es zwei

181
00:08:03,610 --> 00:08:06,760
‫Möglichkeiten, dies zu tun, und die erste

182
00:08:06,760 --> 00:08:11,363
‫wäre, einfach diesen Code zu kopieren und dann find1 hier einzufügen.

183
00:08:12,210 --> 00:08:14,210
‫Aber das ist nicht wirklich

184
00:08:14,210 --> 00:08:16,970
‫gut, und deshalb verwenden wir stattdessen einen regulären Ausdruck.

185
00:08:16,970 --> 00:08:20,530
‫Und das ist ganz einfach, und so ...

186
00:08:20,530 --> 00:08:22,700
‫Und lassen Sie mich das hier

187
00:08:22,700 --> 00:08:24,013
‫tatsächlich duplizieren, dieses

188
00:08:25,495 --> 00:08:28,360
‫Stück auskommentieren und dann denken Sie daran, ein regulärer

189
00:08:28,360 --> 00:08:30,550
‫Ausdruck beginnt und endet mit einem Schrägstrich.

190
00:08:30,550 --> 00:08:32,500
‫Und hier möchte ich sagen,

191
00:08:32,500 --> 00:08:34,437
‫dass diese Middleware nicht

192
00:08:34,437 --> 00:08:36,510
‫nur für find ausgeführt werden sollte,

193
00:08:36,510 --> 00:08:40,450
‫sondern für alle Befehle, die mit dem Namen find beginnen.

194
00:08:40,450 --> 00:08:41,283
‫Okay?

195
00:08:41,283 --> 00:08:45,330
‫Also, find und find1 und auch find1 und delete, find1

196
00:08:45,330 --> 00:08:46,830
‫und update, und

197
00:08:46,830 --> 00:08:49,400
‫all dies löst nun tatsächlich diese Middleware-Funktion

198
00:08:49,400 --> 00:08:51,550
‫aus, die wir hier haben.

199
00:08:52,760 --> 00:08:53,890
‫Gut?

200
00:08:53,890 --> 00:08:55,580
‫Das ist also nicht nötig.

201
00:08:55,580 --> 00:08:58,510
‫Dieser reguläre Ausdruck hier ist viel besser.

202
00:08:58,510 --> 00:08:59,878
‫Auch hier bedeutet

203
00:08:59,878 --> 00:09:03,000
‫dies hier einfach alle Strings, die mit find beginnen.

204
00:09:03,000 --> 00:09:05,140
‫Und tatsächlich, da wir hier sind,

205
00:09:05,140 --> 00:09:07,883
‫möchte ich Ihnen die Mongoose-Dokumentationen noch einmal zeigen.

206
00:09:08,970 --> 00:09:13,240
‫Wenn wir also in diesen Handbüchern auf Middleware eingehen, erhalten Sie

207
00:09:13,240 --> 00:09:15,670
‫einen Überblick über die gesamte Middleware.

208
00:09:15,670 --> 00:09:16,557
‫Dokument-Middleware ist

209
00:09:16,557 --> 00:09:19,041
‫beispielsweise diejenige, über die wir zuvor gesprochen

210
00:09:19,041 --> 00:09:21,640
‫haben und die beispielsweise beim Speichern ausgeführt wird.

211
00:09:21,640 --> 00:09:23,600
‫Tatsächlich kann Dokumenten-Middleware aber

212
00:09:23,600 --> 00:09:26,510
‫auch für Dinge wie Entfernen ausgeführt werden.

213
00:09:26,510 --> 00:09:27,460
‫Gut?

214
00:09:27,460 --> 00:09:28,840
‫Oder zum Validieren.

215
00:09:28,840 --> 00:09:31,220
‫Okay, aber ich habe nicht darüber gesprochen,

216
00:09:31,220 --> 00:09:34,750
‫weil normalerweise der, den wir immer verwenden, nur zum Speichern dient.

217
00:09:34,750 --> 00:09:37,590
‫Jetzt kann Abfrage-Middleware für alle diese

218
00:09:37,590 --> 00:09:39,340
‫Abfragefunktionen ausgeführt werden.

219
00:09:39,340 --> 00:09:41,980
‫Finden Sie also, wie wir gerade angegeben

220
00:09:41,980 --> 00:09:43,780
‫haben, und jetzt wird es

221
00:09:43,780 --> 00:09:45,520
‫mit unserem regulären

222
00:09:45,520 --> 00:09:47,270
‫Ausdruck auch für find1, findOneAndDelete,

223
00:09:48,768 --> 00:09:50,518
‫findOneAndRemove und findOneAndUpdate ausgeführt.

224
00:09:51,850 --> 00:09:55,130
‫Wie auch immer, wenn Sie jetzt zurück zu

225
00:09:55,130 --> 00:09:58,650
‫Postman gehen, sollte dies diese Situation jetzt hier behoben haben.

226
00:09:58,650 --> 00:10:01,210
‫Wenn wir diese Abfrage jetzt ausführen, sollte

227
00:10:01,210 --> 00:10:03,040
‫sie keine Ergebnisse liefern.

228
00:10:03,040 --> 00:10:04,800
‫Und das tut es tatsächlich nicht.

229
00:10:04,800 --> 00:10:08,220
‫Denn denken Sie daran, wir versuchten, eine geheime Tour zu bekommen.

230
00:10:08,220 --> 00:10:10,370
‫Die Tour mit dieser ID hier ist

231
00:10:10,370 --> 00:10:12,520
‫also geheim, aber wir möchten nie, dass

232
00:10:12,520 --> 00:10:14,380
‫die secretTours in einer Abfrage auftauchen.

233
00:10:14,380 --> 00:10:17,283
‫Deshalb erhalten wir im Moment null Ergebnisse.

234
00:10:18,190 --> 00:10:19,023
‫Okay?

235
00:10:19,023 --> 00:10:20,510
‫Also das funktioniert jetzt.

236
00:10:20,510 --> 00:10:22,160
‫Speichern Sie dies nicht

237
00:10:22,160 --> 00:10:24,230
‫und jetzt zurück zu unserem Code.

238
00:10:24,230 --> 00:10:25,900
‫Lassen Sie uns nun

239
00:10:25,900 --> 00:10:28,333
‫tatsächlich auch eine Post-Middleware für find angeben.

240
00:10:30,140 --> 00:10:35,140
‫Also, tourSchema, und dann, wie zuvor, post, und dann verwenden wir

241
00:10:35,820 --> 00:10:38,510
‫hier wieder unseren regulären Ausdruck für

242
00:10:38,510 --> 00:10:41,113
‫alles, was mit find beginnt.

243
00:10:43,340 --> 00:10:45,240
‫Und dann nur eine normale

244
00:10:45,240 --> 00:10:47,400
‫Funktion, und dann erhalten wir hier in

245
00:10:47,400 --> 00:10:49,810
‫der Post-Find-Middleware tatsächlich Zugriff auf alle Dokumente, die

246
00:10:49,810 --> 00:10:51,713
‫wir von der Abfrage zurückgegeben haben.

247
00:10:52,680 --> 00:10:54,573
‫Nennen wir das also Docs.

248
00:10:55,680 --> 00:10:56,780
‫Gut?

249
00:10:56,780 --> 00:10:59,350
‫Denken Sie also daran, dass diese Middleware

250
00:10:59,350 --> 00:11:02,280
‫ausgeführt wird, nachdem die Abfrage bereits ausgeführt wurde.

251
00:11:02,280 --> 00:11:04,100
‫So kann es

252
00:11:04,100 --> 00:11:06,120
‫auf die zurückgegebenen Dokumente zugreifen.

253
00:11:06,120 --> 00:11:07,900
‫Auch hier, weil diese Abfrage

254
00:11:07,900 --> 00:11:10,033
‫zu diesem Zeitpunkt eigentlich schon beendet ist.

255
00:11:11,580 --> 00:11:15,510
‫Also loggen wir diese Dokumente in die Konsole ein,

256
00:11:15,510 --> 00:11:16,343
‫also

257
00:11:16,343 --> 00:11:20,360
‫docs, aber ich möchte hier auch noch etwas anderes machen.

258
00:11:20,360 --> 00:11:22,710
‫Lassen Sie uns also im Grunde eine Art

259
00:11:22,710 --> 00:11:25,150
‫Uhr erstellen, um zu messen, wie lange es

260
00:11:25,150 --> 00:11:27,163
‫dauert, die aktuelle Abfrage auszuführen.

261
00:11:28,120 --> 00:11:28,953
‫Gut?

262
00:11:28,953 --> 00:11:30,770
‫Also, wie sollen wir das machen?

263
00:11:30,770 --> 00:11:32,680
‫Nun, ganz einfach.

264
00:11:32,680 --> 00:11:36,180
‫Wir können dem this-Objekt einfach eine Eigenschaft setzen,

265
00:11:36,180 --> 00:11:39,810
‫da dieses Abfrageobjekt eigentlich nur ein normales Objekt ist.

266
00:11:39,810 --> 00:11:42,570
‫Natürlich hat es Zugriff auf all diese Methoden, wie zum

267
00:11:42,570 --> 00:11:43,760
‫Beispiel find, aber

268
00:11:43,760 --> 00:11:45,020
‫wir können es auch

269
00:11:45,020 --> 00:11:47,283
‫verwenden, um jede gewünschte Eigenschaft darauf zu setzen.

270
00:11:48,660 --> 00:11:51,000
‫Also wieder nur ein normales Objekt.

271
00:11:51,000 --> 00:11:53,410
‫Und hier können wir dies sagen. Start sollte

272
00:11:53,410 --> 00:11:55,333
‫das aktuelle Datum sein.

273
00:11:56,410 --> 00:11:57,243
‫Okay?

274
00:11:57,243 --> 00:11:59,380
‫Und so wird es

275
00:11:59,380 --> 00:12:02,150
‫als aktuelle Zeit in Millisekunden eingestellt, okay?

276
00:12:02,150 --> 00:12:05,320
‫Und so können wir hier in der Post-Middleware,

277
00:12:05,320 --> 00:12:08,200
‫die nach der Ausführung der Abfrage ausgeführt

278
00:12:08,200 --> 00:12:10,310
‫wird, die aktuelle Zeit minus

279
00:12:10,310 --> 00:12:11,603
‫der Startzeit subtrahieren.

280
00:12:14,640 --> 00:12:15,833
‫Also trösten. log, Abfrage

281
00:12:18,470 --> 00:12:19,583
‫genommen, und jetzt

282
00:12:21,240 --> 00:12:22,600
‫das aktuelle Datum minus

283
00:12:26,970 --> 00:12:28,073
‫diesem.

284
00:12:33,400 --> 00:12:34,423
‫Start, Millisekunden.

285
00:12:35,510 --> 00:12:38,295
‫Okay, speichern wir es und

286
00:12:38,295 --> 00:12:43,295
‫versuchen wir nun, eine Abfrage auszuführen und unsere Ergebnisse anzuzeigen.

287
00:12:45,090 --> 00:12:46,469
‫Okay?

288
00:12:46,469 --> 00:12:48,390
‫Also, hier bekommen wir alle unsere Touren, hier

289
00:12:48,390 --> 00:12:49,713
‫haben wir die Konsole, und

290
00:12:50,700 --> 00:12:52,140
‫lassen Sie uns das eigentlich klarstellen.

291
00:12:52,140 --> 00:12:53,740
‫Da ist viel Zeug drin.

292
00:12:55,540 --> 00:12:56,763
‫Fordern Sie erneut

293
00:12:58,340 --> 00:13:00,480
‫an, und hier sind alle Ergebnisse.

294
00:13:00,480 --> 00:13:03,210
‫Im Grunde sind dies also alle gefundenen Touren, und das

295
00:13:03,210 --> 00:13:06,490
‫ist das Ergebnis von Konsole. Protokoll der Dokumente.

296
00:13:06,490 --> 00:13:09,890
‫Also im Grunde die Dokumente, die der Abfrage entsprachen.

297
00:13:09,890 --> 00:13:13,220
‫Aber ich interessiere mich jetzt für diese erste Konsole. log, und hier

298
00:13:13,220 --> 00:13:17,670
‫sehen wir "Abfrage dauerte 120 Millisekunden", und das war im Grunde

299
00:13:17,670 --> 00:13:19,970
‫die Zeit, die vom Anfang,

300
00:13:19,970 --> 00:13:22,660
‫wo wir dies definiert haben, bis

301
00:13:22,660 --> 00:13:26,950
‫nach der Ausführung der Abfrage zu diesem Zeitpunkt verstrichen ist.

302
00:13:26,950 --> 00:13:27,783
‫Gut.

303
00:13:27,783 --> 00:13:29,910
‫Und das ist alles, was ich Ihnen

304
00:13:29,910 --> 00:13:31,550
‫vorerst zum Thema Abfrage-Middleware zeigen

305
00:13:31,550 --> 00:13:32,680
‫musste, und wie

306
00:13:32,680 --> 00:13:34,370
‫zuvor werden wir dies natürlich

307
00:13:34,370 --> 00:13:35,380
‫während des

308
00:13:35,380 --> 00:13:37,450
‫gesamten Kurses häufig verwenden, denn wie ich

309
00:13:37,450 --> 00:13:39,840
‫eingangs erwähnte, ist Middleware wirklich ein grundlegendes Konzept

310
00:13:39,840 --> 00:13:42,010
‫Das ist wirklich wichtig für viele Dinge,

311
00:13:42,010 --> 00:13:44,060
‫die wir in unseren Anwendungen benötigen.

312
00:13:44,060 --> 00:13:46,140
‫Wir sind also fast fertig mit dem Reden über Middleware.

313
00:13:46,140 --> 00:13:48,070
‫Als nächstes folgt die

314
00:13:48,070 --> 00:13:49,823
‫letzte, die Aggregations-Middleware.

