﻿1
00:00:01,110 --> 00:00:02,910
‫Instructeur : Il s'agit donc de

2
00:00:02,910 --> 00:00:05,230
‫la deuxième partie du calcul des statistiques d'examen.

3
00:00:05,230 --> 00:00:08,873
‫Cette fois, pour quand un avis est mis à jour ou supprimé.

4
00:00:10,780 --> 00:00:13,310
‫Et cette partie est en fait un peu

5
00:00:13,310 --> 00:00:15,450
‫plus difficile car, gardez à l'esprit

6
00:00:15,450 --> 00:00:17,730
‫qu'un avis est mis à jour ou

7
00:00:19,829 --> 00:00:21,246
‫supprimé à l'aide

8
00:00:25,490 --> 00:00:28,277
‫de findByIdAndUpdate ou également de findByIdAndDelete, n'est-ce pas ?

9
00:00:33,540 --> 00:00:37,020
‫Donc, pour ceux-ci, nous n'avons en fait pas de middleware de

10
00:00:37,020 --> 00:00:39,830
‫document, mais seulement un middleware de requête, d'accord.

11
00:00:39,830 --> 00:00:42,630
‫Et donc dans la requête, nous n'avons en

12
00:00:42,630 --> 00:00:46,140
‫fait pas d'accès direct au document pour ensuite faire quelque

13
00:00:46,140 --> 00:00:48,300
‫chose de similaire à ça, d'accord.

14
00:00:48,300 --> 00:00:51,380
‫Parce que, rappelez-vous, nous avons besoin d'accéder à l'examen en cours,

15
00:00:51,380 --> 00:00:54,130
‫de sorte qu'à partir de là, nous puissions extraire

16
00:00:54,130 --> 00:00:58,030
‫l'ID de la tournée, puis calculer les statistiques à partir de là, d'accord,

17
00:00:58,030 --> 00:01:00,130
‫mais encore une fois, pour ces

18
00:01:00,130 --> 00:01:02,830
‫crochets ici, nous n'avons qu'un middleware de requête, d'accord.

19
00:01:02,830 --> 00:01:04,890
‫Mais permettez-moi maintenant de vous

20
00:01:04,890 --> 00:01:07,610
‫montrer une astuce intéressante pour contourner cette limitation.

21
00:01:07,610 --> 00:01:10,040
‫Nous allons donc implémenter

22
00:01:10,040 --> 00:01:14,073
‫un pré-middleware pour ces crochets, pour ces événements essentiellement.

23
00:01:15,860 --> 00:01:19,730
‫Donc pre, et encore une fois, je vais utiliser

24
00:01:19,730 --> 00:01:22,870
‫une expression régulière pour une chaîne commençant

25
00:01:22,870 --> 00:01:25,457
‫par findOneAnd et c'est tout.

26
00:01:28,641 --> 00:01:30,410
‫Et donc

27
00:01:30,410 --> 00:01:33,970
‫celui-ci va alors fonctionner pour findOneAndUpdate,

28
00:01:34,830 --> 00:01:37,150
‫et findOneAndDelete car, rappelez-vous

29
00:01:37,150 --> 00:01:40,480
‫qu'en coulisse, findByIdAndUpdate n'est qu'un

30
00:01:40,480 --> 00:01:44,750
‫raccourci pour findOneAndUpdate avec l'ID actuel, à droite.

31
00:01:44,750 --> 00:01:48,530
‫Donc, ici, nous devons en fait

32
00:01:48,530 --> 00:01:52,833
‫utiliser les crochets middleware findOneAndDelete et findOneAndUpdate, d'accord.

33
00:01:55,500 --> 00:01:59,970
‫Donc, fonction, et il obtient le mot-clé suivant car

34
00:01:59,970 --> 00:02:02,420
‫il s'agit d'un pré-middleware.

35
00:02:02,420 --> 00:02:05,310
‫Donc, rappelez-vous que l'objectif est d'accéder au

36
00:02:05,310 --> 00:02:07,990
‫document de révision actuel, d'accord,

37
00:02:07,990 --> 00:02:11,280
‫mais ici, ce mot-clé est la requête actuelle.

38
00:02:11,280 --> 00:02:13,650
‫Maintenant, comment allons-nous contourner cela?

39
00:02:13,650 --> 00:02:16,150
‫Eh bien, nous pouvons essentiellement exécuter une requête,

40
00:02:16,150 --> 00:02:18,200
‫puis cela nous donnera le document

41
00:02:18,200 --> 00:02:20,040
‫en cours de traitement.

42
00:02:20,040 --> 00:02:22,650
‫Donc, pour ce faire, nous pouvons utiliser findOne.

43
00:02:25,590 --> 00:02:26,590
‫Et c'est tout.

44
00:02:26,590 --> 00:02:29,740
‫Alors tout ce que nous avons à faire est d'attendre cette requête,

45
00:02:29,740 --> 00:02:31,090
‫puis de l'enregistrer quelque part.

46
00:02:34,140 --> 00:02:38,850
‫Appelons-le donc r, qui va être révisé, d'accord.

47
00:02:38,850 --> 00:02:40,763
‫Ensuite, enregistrez-le en tant que async.

48
00:02:42,650 --> 00:02:43,773
‫Et c'est tout.

49
00:02:45,000 --> 00:02:47,830
‫Et juste pour nous assurer que

50
00:02:47,830 --> 00:02:52,340
‫cela fonctionne ici, enregistrons-le pour l'instant sur la console, d'accord.

51
00:02:52,340 --> 00:02:55,080
‫Donc, sans faire de calculs, tout ce

52
00:02:55,080 --> 00:02:56,760
‫qui nous intéresse vraiment,

53
00:02:56,760 --> 00:02:59,960
‫c'est de voir si cette belle astuce fonctionne ici.

54
00:02:59,960 --> 00:03:02,410
‫Donc, fondamentalement, l'astuce consistant à contourner cela dans

55
00:03:02,410 --> 00:03:04,070
‫un middleware de requête,

56
00:03:04,070 --> 00:03:05,853
‫nous n'avons accès qu'à la requête.

57
00:03:06,890 --> 00:03:09,850
‫Encore une fois, nous devons accéder au document

58
00:03:09,850 --> 00:03:13,210
‫et nous exécutons donc essentiellement cette requête en

59
00:03:13,210 --> 00:03:14,463
‫utilisant findOne.

60
00:03:15,620 --> 00:03:20,603
‫Très bien, mettons donc à jour une critique, et mettons donc à

61
00:03:22,570 --> 00:03:26,313
‫jour la dernière que nous avons faite, très bien,

62
00:03:31,310 --> 00:03:33,050
‫et la note,

63
00:03:33,050 --> 00:03:35,010
‫maintenant, fixons-la à quatre.

64
00:03:35,010 --> 00:03:37,080
‫C'était donc cinq

65
00:03:38,130 --> 00:03:42,023
‫avant et maintenant nous le changeons à quatre.

66
00:03:43,040 --> 00:03:44,083
‫Il

67
00:03:46,900 --> 00:03:50,620
‫a donc envoyé cela, et voici la critique.

68
00:03:50,620 --> 00:03:53,140
‫Maintenant, bien sûr, la note est toujours fixée

69
00:03:53,140 --> 00:03:56,130
‫à cinq à ce stade, car ce findOne ici obtient

70
00:03:56,130 --> 00:03:58,850
‫vraiment le document de la base de données,

71
00:03:58,850 --> 00:04:01,660
‫et donc à ce moment-là, en pré, il n'y

72
00:04:01,660 --> 00:04:04,900
‫avait toujours pas de modifications dans la base de données, et

73
00:04:04,900 --> 00:04:06,540
‫donc c'était cinq avant,

74
00:04:06,540 --> 00:04:08,990
‫et maintenant ça va toujours être cinq.

75
00:04:08,990 --> 00:04:10,460
‫Mais cela n'a pas vraiment

76
00:04:10,460 --> 00:04:13,750
‫d'importance ici car tout ce qui nous intéresse, c'est cette pièce d'identité.

77
00:04:13,750 --> 00:04:16,580
‫En fait, cet identifiant de tournée, c'est ça,

78
00:04:16,580 --> 00:04:18,350
‫parce que c'est ce

79
00:04:18,350 --> 00:04:21,220
‫dont nous aurons besoin pour calculer les notes moyennes.

80
00:04:21,220 --> 00:04:24,363
‫D'accord, et maintenant, utilisons cette fonction.

81
00:04:25,240 --> 00:04:27,850
‫D'accord, maintenant, réfléchissons à cela car

82
00:04:27,850 --> 00:04:32,190
‫si nous devions utiliser cette fonction calcAverageRatings à ce

83
00:04:32,190 --> 00:04:33,850
‫stade, nous

84
00:04:33,850 --> 00:04:36,100
‫calculerions les statistiques en utilisant

85
00:04:36,100 --> 00:04:39,490
‫les données non mises à jour, d'accord.

86
00:04:39,490 --> 00:04:42,390
‫Et c'est exactement la même raison pour laquelle ici,

87
00:04:42,390 --> 00:04:45,400
‫nous devions également utiliser post et non pre, d'accord, car

88
00:04:45,400 --> 00:04:48,650
‫ce n'est qu'une fois que le document est déjà enregistré

89
00:04:48,650 --> 00:04:50,620
‫dans la base de données

90
00:04:50,620 --> 00:04:52,850
‫qu'il est logique de calculer les notes.

91
00:04:52,850 --> 00:04:55,570
‫Et donc ici, c'est exactement la même chose,

92
00:04:55,570 --> 00:04:58,650
‫à la grosse différence qu'on ne peut pas simplement

93
00:04:58,650 --> 00:05:00,533
‫changer ce pre en post.

94
00:05:01,390 --> 00:05:04,500
‫Nous ne pouvons donc pas le faire car à ce

95
00:05:04,500 --> 00:05:07,260
‫stade, nous n'avons plus accès à la requête car

96
00:05:07,260 --> 00:05:10,410
‫la requête a déjà été exécutée, d'accord, et donc sans la

97
00:05:10,410 --> 00:05:11,500
‫requête, nous ne

98
00:05:11,500 --> 00:05:13,670
‫pouvons pas enregistrer le document de révision,

99
00:05:13,670 --> 00:05:16,410
‫et nous ne pouvons donc pas exécuter cette fonction.

100
00:05:16,410 --> 00:05:20,360
‫Donc, c'est vraiment déroutant, je comprends, mais j'ai vraiment décidé de

101
00:05:20,360 --> 00:05:23,710
‫créer cette conférence de cette manière parce que, eh

102
00:05:23,710 --> 00:05:25,790
‫bien, c'est vraiment la seule

103
00:05:25,790 --> 00:05:28,730
‫solution à ce problème, et c'est un très

104
00:05:28,730 --> 00:05:32,240
‫bon exercice pour que vous compreniez fondamentalement cette Hello Experience.

105
00:05:32,240 --> 00:05:35,833
‫Donc, la solution pour cela est maintenant d'utiliser

106
00:05:37,520 --> 00:05:40,690
‫post, donc, reviewSchema, puis fondamentalement la même

107
00:05:40,690 --> 00:05:44,460
‫chose, alors copions simplement tout cela, rendons-nous la vie

108
00:05:44,460 --> 00:05:47,640
‫un peu plus facile, débarrassons-nous de cela

109
00:05:47,640 --> 00:05:50,033
‫et débarrassons-nous du Suivant.

110
00:05:51,850 --> 00:05:54,320
‫Ici, nous devons également appeler ensuite,

111
00:05:54,320 --> 00:05:58,170
‫d'accord, mais nous le faisons ensuite par la poste, d'accord.

112
00:05:58,170 --> 00:05:59,730
‫Et maintenant, à ce

113
00:05:59,730 --> 00:06:01,840
‫moment-là, donc après que la requête soit

114
00:06:01,840 --> 00:06:04,700
‫déjà terminée, et donc que l'examen ait été mis à

115
00:06:04,700 --> 00:06:06,290
‫jour, c'est un moment parfait

116
00:06:06,290 --> 00:06:08,283
‫où nous pouvons ensuite appeler cette fonction.

117
00:06:09,510 --> 00:06:12,720
‫Alors, calculez les notes moyennes.

118
00:06:12,720 --> 00:06:15,930
‫Mais d'où obtenons-nous maintenant l'identifiant de la tournée ?

119
00:06:15,930 --> 00:06:17,860
‫Eh bien, nous allons devoir utiliser

120
00:06:17,860 --> 00:06:21,260
‫une astuce qui consiste essentiellement à transmettre des données du

121
00:06:21,260 --> 00:06:23,000
‫pré-middleware au post middleware.

122
00:06:23,000 --> 00:06:26,690
‫Et donc au lieu d'enregistrer ce document dans une simple variable,

123
00:06:26,690 --> 00:06:30,403
‫nous allons l'enregistrer dans celle-ci. r.

124
00:06:31,750 --> 00:06:35,773
‫Donc, en gros, nous créons une propriété sur cette variable.

125
00:06:36,700 --> 00:06:40,390
‫D'accord, et maintenant ici, nous avons toujours accès à cela.

126
00:06:40,390 --> 00:06:45,350
‫Et maintenant, nous pouvons dire ceci. r, qui rappelez-vous est l'examen,

127
00:06:45,350 --> 00:06:47,603
‫puis . visiter.

128
00:06:49,220 --> 00:06:53,300
‫Donc, c'est encore une fois assez déroutant, mais encore une

129
00:06:53,300 --> 00:06:56,850
‫fois assez amusant une fois que vous comprenez comment

130
00:06:56,850 --> 00:06:58,873
‫cela fonctionne vraiment, d'accord.

131
00:06:59,800 --> 00:07:03,200
‫Maintenant, encore une fois, nous avons besoin de quelque chose

132
00:07:03,200 --> 00:07:06,320
‫comme ça ici pour appeler cette fonction ici

133
00:07:06,320 --> 00:07:08,460
‫car rappelez-vous qu'il s'agit en

134
00:07:08,460 --> 00:07:12,570
‫fait d'une méthode statique, et nous devons donc l'appeler sur le modèle.

135
00:07:12,570 --> 00:07:15,500
‫Maintenant, où est ce modèle dans ce cas?

136
00:07:15,500 --> 00:07:20,500
‫Eh bien, c'est à ça. r, qui est dans ce

137
00:07:20,848 --> 00:07:22,550
‫cas, équivalent à

138
00:07:22,550 --> 00:07:25,113
‫ceci ceci ici dans ce middleware,. constructeur. calcAverageRatings.

139
00:07:26,427 --> 00:07:29,217
‫Woo, ça a l'air assez écrasant, n'est-ce pas ?

140
00:07:31,860 --> 00:07:35,403
‫Bien sûr, nous devons l'attendre, c'est pourquoi nous l'avons

141
00:07:36,600 --> 00:07:38,100
‫déclaré asynchrone, d'accord.

142
00:07:38,100 --> 00:07:42,600
‫Donc, encore une fois, nous avons essentiellement utilisé cette façon ici de transmettre

143
00:07:42,600 --> 00:07:46,210
‫les données du pré-middleware au post middleware, et donc ici

144
00:07:46,210 --> 00:07:48,530
‫nous avons récupéré le document

145
00:07:48,530 --> 00:07:50,930
‫de révision à partir de cette variable.

146
00:07:50,930 --> 00:07:55,060
‫D'accord, et encore une fois, nous avons dû le faire

147
00:07:55,060 --> 00:07:59,970
‫de cette manière car à ce moment-là, la requête était déjà exécutée, et

148
00:07:59,970 --> 00:08:01,317
‫nous ne pouvions

149
00:08:01,317 --> 00:08:03,550
‫donc pas le faire ici.

150
00:08:03,550 --> 00:08:06,783
‫Et écrivons cela en fait ;

151
00:08:11,950 --> 00:08:16,753
‫ne fonctionne PAS ici, la requête a déjà été exécutée.

152
00:08:19,690 --> 00:08:21,253
‫Génial, et avec cela, nous devrions maintenant

153
00:08:22,610 --> 00:08:24,130
‫être prêts à tester cela.

154
00:08:24,130 --> 00:08:27,103
‫Alors allons de l'avant et mettons à jour

155
00:08:28,100 --> 00:08:32,850
‫celui-ci ici une fois de plus, et définissons-le sur une note de un, d'accord.

156
00:08:32,850 --> 00:08:37,493
‫Jetons maintenant un coup d'œil ici, jusqu'à ce que vous voyiez que le nombre d'évaluations est

157
00:08:39,160 --> 00:08:41,060
‫toujours de cinq, mais la moyenne

158
00:08:41,060 --> 00:08:44,020
‫n'est plus que de trois, et maintenant la question est

159
00:08:44,020 --> 00:08:46,620
‫de savoir si cela s'est vraiment mis à jour

160
00:08:46,620 --> 00:08:49,220
‫également sur la tournée, et, oui, en effet,

161
00:08:49,220 --> 00:08:50,593
‫il l'a fait .

162
00:08:53,740 --> 00:08:58,150
‫Donc, cinq notes avec une moyenne de trois.

163
00:08:58,150 --> 00:09:02,040
‫Super, mettons maintenant à jour un autre.

164
00:09:02,040 --> 00:09:06,220
‫Alors, pour cela, récupérons tous nos avis, et

165
00:09:06,220 --> 00:09:09,543
‫en fait nous ne voulons pas tous,

166
00:09:11,570 --> 00:09:14,280
‫mais seulement le dernier.

167
00:09:14,280 --> 00:09:16,201
‫Et là, j'ai toujours ce

168
00:09:16,201 --> 00:09:18,730
‫filtre, donc je devrais m'en débarrasser, donc

169
00:09:18,730 --> 00:09:20,253
‫nous obtenons tous

170
00:09:21,650 --> 00:09:26,650
‫les 65 résultats, donc tous ces avis, mais nous ne voulons que les derniers,

171
00:09:26,980 --> 00:09:29,280
‫donc ceux que nous venons de créer.

172
00:09:29,280 --> 00:09:31,073
‫Alors mettons à jour...

173
00:09:32,820 --> 00:09:34,160
‫Je ne suis pas sûr, car en fait, ils ne sont pas en ordre ici.

174
00:09:37,570 --> 00:09:42,090
‫Allons, d'accord, nous avons donc ici les plus récents.

175
00:09:42,090 --> 00:09:47,090
‫Alors permettez-moi maintenant de mettre à jour celui-ci ici, disons, quatre,

176
00:09:47,490 --> 00:09:50,963
‫juste comme test final, et cela devrait donc

177
00:09:56,540 --> 00:09:59,410
‫augmenter un peu la moyenne.

178
00:09:59,410 --> 00:10:01,173
‫Et en effet, il l'a fait.

179
00:10:02,490 --> 00:10:04,090
‫Số 3. 6 maintenant, et bien sûr, le nombre est toujours

180
00:10:04,090 --> 00:10:07,400
‫cinq parce que vous n'avez pas ajouté de nouvelle critique.

181
00:10:07,400 --> 00:10:10,400
‫Donc, cela fonctionne très bien sur la mise à jour,

182
00:10:10,400 --> 00:10:12,700
‫testons-le maintenant également avec la suppression.

183
00:10:12,700 --> 00:10:15,463
‫Alors allons-y et supprimons l'examen que nous

184
00:10:17,470 --> 00:10:21,710
‫venons de mettre à jour et donc maintenant nous devrions être réduits

185
00:10:23,350 --> 00:10:26,860
‫à seulement quatre, et en effet, nous y sommes.

186
00:10:26,860 --> 00:10:28,550
‫Alors maintenant, seulement quatre.

187
00:10:28,550 --> 00:10:30,100
‫Et supprimons en fait tous.

188
00:10:30,100 --> 00:10:32,053
‫Donc, celui-ci est le suivant.

189
00:10:35,410 --> 00:10:36,723
‫Ah, nous y sommes.

190
00:10:45,038 --> 00:10:46,180
‫Puis aussi celui-ci.

191
00:10:46,180 --> 00:10:47,303
‫Donc, maintenant, nous

192
00:10:53,560 --> 00:10:55,760
‫devrions être à trois seulement ou, en fait,

193
00:10:56,970 --> 00:11:00,350
‫il ne nous en reste plus que deux avec une moyenne de quatre.

194
00:11:00,350 --> 00:11:01,893
‫Voyons donc lequel il nous reste.

195
00:11:05,600 --> 00:11:08,300
‫C'est donc celui-ci avec trois et celui-ci avec cinq.

196
00:11:08,300 --> 00:11:12,330
‫Et c'est pourquoi nous avons cette moyenne de quatre.

197
00:11:12,330 --> 00:11:15,203
‫Alors débarrassons-nous de celui-ci et maintenant notre moyenne devrait

198
00:11:19,210 --> 00:11:21,320
‫être de cinq, n'est-ce pas ?

199
00:11:21,320 --> 00:11:25,020
‫Ou en fait trois parce que le seul qui reste

200
00:11:25,020 --> 00:11:26,340
‫en a trois.

201
00:11:26,340 --> 00:11:29,340
‫Et maintenant, le test final, en supprimant le dernier,

202
00:11:29,340 --> 00:11:33,350
‫juste pour voir ce qui se passera une fois que nous aurons fait cela.

203
00:11:33,350 --> 00:11:35,993
‫Et, nous obtenons une erreur ici.

204
00:11:41,070 --> 00:11:42,530
‫Donc, impossible de lire la propriété nRating de non défini.

205
00:11:42,530 --> 00:11:46,400
‫C'est donc calcAverageRatings à la ligne 69.

206
00:11:46,400 --> 00:11:50,683
‫Donc, je ne sais pas ce que c'est.

207
00:11:53,280 --> 00:11:54,903
‫Donc, ligne 69, et donc, c'est ce problème ici.

208
00:11:55,760 --> 00:12:00,440
‫Nous essayons donc de lire nRating de non défini.

209
00:12:00,440 --> 00:12:03,530
‫Donc, la statistique zéro est fondamentalement indéfinie.

210
00:12:03,530 --> 00:12:06,420
‫Et c'est parce que s'il n'y a pas

211
00:12:06,420 --> 00:12:09,400
‫de document correspondant à cette requête ici, eh bien,

212
00:12:09,400 --> 00:12:11,780
‫nous récupérons simplement un tableau vide.

213
00:12:11,780 --> 00:12:13,947
‫Et c'est en fait exactement ce que nous avons ici.

214
00:12:13,947 --> 00:12:17,100
‫C'est donc le tableau de statistiques et pour le moment, il

215
00:12:17,100 --> 00:12:19,350
‫n'a aucun résultat, d'accord, nous ne devrions

216
00:12:19,350 --> 00:12:22,630
‫donc exécuter ce morceau de code ici que chaque fois que nous

217
00:12:22,630 --> 00:12:25,500
‫avons réellement quelque chose dans le tableau de statistiques.

218
00:12:25,500 --> 00:12:28,653
‫Alors faisons-le.

219
00:12:29,810 --> 00:12:30,903
‫Donc si statistiques. la longueur est

220
00:12:31,760 --> 00:12:36,760
‫supérieure à zéro, eh bien, alors faites ceci.

221
00:12:40,090 --> 00:12:42,623
‫Et sinon, eh bien, cela signifie essentiellement que toutes

222
00:12:45,450 --> 00:12:48,100
‫nos critiques ont disparu, eh bien, nous voulons essentiellement

223
00:12:48,100 --> 00:12:50,260
‫revenir à la valeur par défaut.

224
00:12:50,260 --> 00:12:54,280
‫Nous allons donc le régler sur la

225
00:12:54,280 --> 00:12:58,780
‫quantité de zéro et la moyenne de 4. 5, qui n'oubliez pas, est la valeur par défaut lorsqu'il n'y

226
00:12:58,780 --> 00:13:02,030
‫a aucun avis.

227
00:13:02,030 --> 00:13:04,943
‫Alors créons rapidement une nouvelle critique, et ça

228
00:13:08,540 --> 00:13:10,823
‫peut être ça, d'accord, donc nous revenons

229
00:13:12,200 --> 00:13:13,150
‫à une

230
00:13:15,880 --> 00:13:19,400
‫note, et maintenant la supprimons tout de suite, juste pour

231
00:13:19,400 --> 00:13:20,780
‫tester ce morceau

232
00:13:20,780 --> 00:13:24,963
‫de code que nous venons d'écrire, juste pour le voir ici ainsi,

233
00:13:28,080 --> 00:13:30,310
‫donc une note, en moyenne cinq.

234
00:13:30,310 --> 00:13:32,573
‫Et maintenant, lorsque nous le

235
00:13:33,850 --> 00:13:36,113
‫supprimons, nous n'obtenons plus d'erreur.

236
00:13:38,910 --> 00:13:41,790
‫Et sur notre tournée, nous sommes

237
00:13:41,790 --> 00:13:45,630
‫revenus à zéro et à un défaut de 4. 5.

238
00:13:45,630 --> 00:13:48,450
‫D'accord, d'accord, d'accord, parfait.

239
00:13:48,450 --> 00:13:51,560
‫Prenons donc à nouveau juste une petite seconde

240
00:13:51,560 --> 00:13:54,920
‫ici pour récapituler ce que nous venons de faire.

241
00:13:54,920 --> 00:13:57,090
‫Ainsi, pour pouvoir exécuter cette fonction ici

242
00:13:57,090 --> 00:13:59,970
‫également lors de la mise à jour et de la suppression,

243
00:13:59,970 --> 00:14:02,320
‫nous devons en fait utiliser le middleware de

244
00:14:02,320 --> 00:14:04,590
‫requête que Mongoose nous fournit pour ces situations.

245
00:14:04,590 --> 00:14:07,110
‫Bon, donc, nous n'avons pas de middleware

246
00:14:07,110 --> 00:14:11,230
‫de document pratique, qui fonctionne, pour ces fonctions, mais à la

247
00:14:11,230 --> 00:14:13,140
‫place nous devons utiliser

248
00:14:13,140 --> 00:14:15,880
‫le middleware de requête, et dans celui-ci,

249
00:14:15,880 --> 00:14:18,660
‫nous n'avons pas directement accès au document actuel.

250
00:14:18,660 --> 00:14:20,090
‫Et donc nous devons contourner

251
00:14:20,090 --> 00:14:21,540
‫cela en utilisant ce findOne ici, et

252
00:14:21,540 --> 00:14:24,870
‫donc essentiellement en récupérant le document actuel à partir de la base de données.

253
00:14:24,870 --> 00:14:27,340
‫Nous le stockons ensuite sur la variable

254
00:14:27,340 --> 00:14:30,450
‫de requête actuelle, et voilà, et en faisant cela, nous

255
00:14:30,450 --> 00:14:32,950
‫y avons ensuite accès dans le post middleware.

256
00:14:32,950 --> 00:14:36,480
‫Et ce n'est alors que dans le post middleware que nous

257
00:14:36,480 --> 00:14:38,610
‫calculons réellement les statistiques des avis.

258
00:14:38,610 --> 00:14:42,500
‫Et rappelez-vous que nous procédons de cette façon, car si nous

259
00:14:42,500 --> 00:14:44,370
‫le faisions correctement dans

260
00:14:44,370 --> 00:14:47,380
‫cette fonction middleware, les données sous-jacentes n'auraient pas été

261
00:14:47,380 --> 00:14:50,100
‫mises à jour à ce stade et les

262
00:14:50,100 --> 00:14:53,150
‫statistiques calculées ne seraient donc pas vraiment à jour.

263
00:14:53,150 --> 00:14:55,150
‫Et c'est pourquoi nous avons utilisé ce processus

264
00:14:55,150 --> 00:14:56,540
‫en deux étapes ici essentiellement.

265
00:14:56,540 --> 00:14:58,963
‫Maintenant, débarrassons-nous de cette console. log ici, puisque nous avons terminé maintenant, et aussi

266
00:15:00,020 --> 00:15:02,220
‫de ces statistiques.

267
00:15:03,130 --> 00:15:06,883
‫Donc, j'espère que c'était amusant pour vous

268
00:15:08,270 --> 00:15:11,390
‫et pas trop accablant.

269
00:15:11,390 --> 00:15:13,890
‫J'ai conçu cet exercice spécifiquement pour que

270
00:15:13,890 --> 00:15:16,390
‫nous puissions résoudre un problème commercial réel

271
00:15:16,390 --> 00:15:19,270
‫en utilisant tous les outils que Mongoose nous donne.

272
00:15:19,270 --> 00:15:22,150
‫Et donc, avec cela, j'espère que vous avez appris un

273
00:15:22,150 --> 00:15:24,500
‫peu mieux à travailler avec tous ces différents

274
00:15:24,500 --> 00:15:26,980
‫middlewares dans différentes situations chaque fois que cela

275
00:15:26,980 --> 00:15:29,220
‫est nécessaire dans une situation réelle.

276
00:15:29,220 --> 00:15:31,640
‫Donc, excellent travail pour avoir terminé cette

277
00:15:31,640 --> 00:15:35,700
‫conférence assez difficile et pour être toujours avec moi à ce stade du cours.

278
00:15:35,700 --> 00:15:39,030
‫C'est vraiment bon pour moi de voir, donc j'en

279
00:15:39,030 --> 00:15:40,594
‫suis vraiment content.

280
00:15:40,594 --> 00:15:43,500
‫Mais de toute façon, il y a encore du contenu plus

281
00:15:43,500 --> 00:15:46,780
‫intéressant à venir dans cette section en fait, et passons maintenant ensemble,

282
00:15:46,780 --> 00:15:48,290
‫directement à la vidéo suivante.

