﻿1
00:00:01,100 --> 00:00:02,860
‫Instructeur : Tout comme

2
00:00:02,860 --> 00:00:06,080
‫Express, Mongoose a également le concept de middleware.

3
00:00:06,080 --> 00:00:08,270
‫Et donc, découvrons maintenant le premier

4
00:00:08,270 --> 00:00:11,163
‫type de middleware, qui est le middleware de document.

5
00:00:12,830 --> 00:00:15,330
‫Maintenant, tout comme avec Express, nous pouvons utiliser le

6
00:00:15,330 --> 00:00:17,860
‫middleware Mongoose pour faire en sorte que quelque chose

7
00:00:17,860 --> 00:00:19,430
‫se produise entre deux événements.

8
00:00:19,430 --> 00:00:22,740
‫Par exemple, chaque fois qu'un nouveau document est

9
00:00:22,740 --> 00:00:25,740
‫enregistré dans la base de données, nous

10
00:00:25,740 --> 00:00:29,450
‫pouvons exécuter une fonction entre l'émission de la commande

11
00:00:29,450 --> 00:00:33,480
‫d'enregistrement et l'enregistrement réel du document, ou également après l'enregistrement réel.

12
00:00:33,480 --> 00:00:35,820
‫Et c'est la raison pour laquelle le

13
00:00:35,820 --> 00:00:38,590
‫middleware Mongoose est également appelé pré et post hooks.

14
00:00:38,590 --> 00:00:41,140
‫Encore une fois, parce que nous pouvons définir

15
00:00:41,140 --> 00:00:44,710
‫des fonctions à exécuter avant ou après un certain événement, comme l'enregistrement

16
00:00:44,710 --> 00:00:47,100
‫d'un document dans la base de données.

17
00:00:47,100 --> 00:00:52,100
‫Le middleware est donc un concept absolument fondamental dans

18
00:00:52,100 --> 00:00:55,180
‫Mongoose, tout comme dans Express.

19
00:00:55,180 --> 00:00:57,190
‫Et il y a des tonnes

20
00:00:57,190 --> 00:00:59,780
‫de possibilités et de cas d'utilisation pour les middlewares, et

21
00:00:59,780 --> 00:01:02,540
‫nous allons utiliser des middlewares tout le temps dans ce projet.

22
00:01:02,540 --> 00:01:06,050
‫Il existe donc quatre types de middleware dans

23
00:01:06,050 --> 00:01:10,080
‫Mongoose : middleware de document, de requête, d'agrégat et de modèle.

24
00:01:10,080 --> 00:01:12,110
‫Et dans cette conférence, nous allons

25
00:01:12,110 --> 00:01:14,410
‫parler du middleware de document, qui est

26
00:01:14,410 --> 00:01:18,110
‫un middleware qui peut agir sur le document en cours de traitement.

27
00:01:18,110 --> 00:01:20,920
‫Donc tout comme les propriétés virtuelles, on

28
00:01:20,920 --> 00:01:23,613
‫définit un middleware sur le schéma,

29
00:01:25,800 --> 00:01:28,543
‫donc tourSchema. pré.

30
00:01:30,030 --> 00:01:32,850
‫Et c'est donc pour le pré middleware, qui, encore

31
00:01:32,850 --> 00:01:35,450
‫une fois, va s'exécuter avant un événement réel.

32
00:01:35,450 --> 00:01:39,360
‫Et cet événement dans ce cas est l'événement de sauvegarde.

33
00:01:39,360 --> 00:01:41,350
‫Et donc cette fonction de rappel

34
00:01:41,350 --> 00:01:42,613
‫que nous allons

35
00:01:43,870 --> 00:01:44,820
‫définir ici

36
00:01:48,200 --> 00:01:51,980
‫ensuite, donc cette fonction sera appelée avant qu'un document réel ne soit

37
00:01:51,980 --> 00:01:53,943
‫enregistré dans la base de données.

38
00:01:55,407 --> 00:02:00,407
‫Il s'agit donc d'un middleware de document, et il

39
00:02:02,010 --> 00:02:05,910
‫fonctionne, laissez-moi écrire tout cela ici.

40
00:02:05,910 --> 00:02:09,640
‫Il s'exécute donc avant la commande save et

41
00:02:10,550 --> 00:02:13,953
‫le fichier . créer la commande.

42
00:02:14,860 --> 00:02:17,040
‫Mais pas sur insérer beaucoup.

43
00:02:17,040 --> 00:02:22,040
‫Donc, si nous utilisons cette commande ici, donc insertMany, cela ne

44
00:02:22,450 --> 00:02:26,153
‫déclenchera en fait pas le middleware de sauvegarde.

45
00:02:27,600 --> 00:02:29,140
‫Gardez donc toujours cela à l'esprit.

46
00:02:29,140 --> 00:02:32,780
‫Il est très important de réaliser que ce n'est qu'à la

47
00:02:32,780 --> 00:02:35,560
‫sauvegarde et à la création que ce middleware ici

48
00:02:35,560 --> 00:02:36,943
‫va être exécuté.

49
00:02:38,929 --> 00:02:41,740
‫Et commençons donc par faire une console simple. log et ce que

50
00:02:42,670 --> 00:02:45,253
‫je vais enregistrer via la console est le suivant.

51
00:02:46,350 --> 00:02:49,870
‫Et donc dans un middleware de sauvegarde, le mot-clé disk ici

52
00:02:49,870 --> 00:02:53,100
‫va pointer vers le document en cours de traitement.

53
00:02:53,100 --> 00:02:56,640
‫Et c'est la raison pour laquelle on l'appelle middleware de document.

54
00:02:56,640 --> 00:02:58,740
‫Encore une fois, car dans cette

55
00:02:58,740 --> 00:03:02,470
‫fonction là, on a accès au document qui est en cours de traitement.

56
00:03:02,470 --> 00:03:05,133
‫Donc, dans ce cas, le document qui est enregistré.

57
00:03:06,078 --> 00:03:09,240
‫Et permettez-moi donc de vous montrer très rapidement cela en

58
00:03:09,240 --> 00:03:11,300
‫utilisant cette console. Journal.

59
00:03:11,300 --> 00:03:13,610
‫Et donc pour déclencher maintenant cette fonction,

60
00:03:13,610 --> 00:03:17,800
‫rappelez-vous que nous devons exécuter une commande de sauvegarde ou une commande de création.

61
00:03:17,800 --> 00:03:22,020
‫Et donc nous devons maintenant créer une nouvelle tournée en utilisant

62
00:03:22,020 --> 00:03:26,013
‫notre API afin, oui, de déclencher ensuite ce middleware.

63
00:03:27,680 --> 00:03:32,680
‫Allons donc ici au facteur, et je vais commencer par enregistrer ces

64
00:03:33,880 --> 00:03:36,830
‫deux nouveaux itinéraires que nous avons

65
00:03:38,450 --> 00:03:42,313
‫créés dans les conférences précédentes, alors obtenez un plan mensuel.

66
00:03:47,300 --> 00:03:52,300
‫Et celui-ci ici est d'obtenir des statistiques de tournée.

67
00:03:56,031 --> 00:03:59,523
‫Alors maintenant, je peux les fermer et créer une nouvelle tournée.

68
00:04:00,430 --> 00:04:03,060
‫Et nous spécifions les données ici dans le corps.

69
00:04:03,060 --> 00:04:06,300
‫Maintenant, toutes les choses ici ne sont pas réellement

70
00:04:06,300 --> 00:04:08,730
‫nécessaires, alors examinons ce qui est réellement

71
00:04:08,730 --> 00:04:11,040
‫nécessaire et débarrassons-nous du reste.

72
00:04:11,040 --> 00:04:13,483
‫Il faut donc l'imageCover,

73
00:04:14,610 --> 00:04:18,500
‫le résumé, bien sûr le prix, et ouais.

74
00:04:18,500 --> 00:04:20,830
‫Alors débarrassons-nous des choses dont nous n'avons

75
00:04:21,760 --> 00:04:24,483
‫pas vraiment besoin ici, juste pour les garder au minimum.

76
00:04:26,000 --> 00:04:28,730
‫Donc les notes, la quantité, la moyenne, donc ce

77
00:04:28,730 --> 00:04:30,080
‫ne sont pas nécessaires.

78
00:04:36,550 --> 00:04:38,490
‫Donc je vais juste appeler

79
00:04:38,490 --> 00:04:43,490
‫celui-ci ici la tournée d'essai, juste pour que ce soit vraiment simple ici.

80
00:04:45,702 --> 00:04:49,370
‫Envoyons maintenant cette demande et en effet, il

81
00:04:49,370 --> 00:04:52,420
‫a créé le nouveau document et

82
00:04:52,420 --> 00:04:56,370
‫regardons maintenant notre console et voyons ce document ici.

83
00:04:56,370 --> 00:04:58,650
‫Et en effet, le voici.

84
00:04:58,650 --> 00:05:01,540
‫Alors augmentons un peu cela ici

85
00:05:01,540 --> 00:05:04,900
‫et voici à quoi ressemble notre document

86
00:05:04,900 --> 00:05:08,510
‫juste avant d'être enregistré dans la base de données.

87
00:05:08,510 --> 00:05:11,710
‫Et donc ici, nous avons des notesMoyenne et quantité,

88
00:05:11,710 --> 00:05:13,500
‫qui sont définies par défaut.

89
00:05:13,500 --> 00:05:17,077
‫Rappelez-vous, donc 4. 5 et zéro, puis

90
00:05:19,185 --> 00:05:21,930
‫l'horodatage createdAt, et vous pouvez même voir la

91
00:05:21,930 --> 00:05:24,523
‫propriété virtuelle que nous avons définie ici.

92
00:05:25,700 --> 00:05:28,100
‫Encore une fois, c'est juste avant que nous enregistrions réellement

93
00:05:28,100 --> 00:05:30,140
‫ces données dans la base de données.

94
00:05:30,140 --> 00:05:31,410
‫Et donc à ce stade,

95
00:05:31,410 --> 00:05:34,600
‫nous pouvons toujours agir sur les données avant qu'elles ne soient enregistrées dans

96
00:05:34,600 --> 00:05:36,920
‫la base de données et c'est exactement ce que

97
00:05:36,920 --> 00:05:38,173
‫nous allons faire maintenant.

98
00:05:39,520 --> 00:05:43,240
‫Donc ici dans notre fonction middleware.

99
00:05:43,240 --> 00:05:45,900
‫Et ce que je veux faire ici, c'est créer

100
00:05:45,900 --> 00:05:48,120
‫un slug pour chacun de ces documents.

101
00:05:48,120 --> 00:05:50,080
‫Alors rappelez-vous comment dans la première section,

102
00:05:50,080 --> 00:05:52,510
‫nous avons créé un slug pour chacun des produits

103
00:05:52,510 --> 00:05:54,313
‫que nous avions en magasin.

104
00:05:55,180 --> 00:05:57,860
‫Et donc un slug est fondamentalement juste

105
00:05:57,860 --> 00:06:01,590
‫une chaîne que nous pouvons mettre dans l'URL, généralement basée sur

106
00:06:01,590 --> 00:06:03,570
‫une chaîne comme le nom.

107
00:06:03,570 --> 00:06:05,780
‫Donc dans ce cas, nous allons créer un slug basé

108
00:06:05,780 --> 00:06:07,433
‫ici sur le nom de la tournée.

109
00:06:09,150 --> 00:06:14,150
‫Alors rappelez-vous comment pour cela nous avons utilisé le package slugify.

110
00:06:14,210 --> 00:06:16,360
‫Et donc allons-y maintenant et installons-le.

111
00:06:20,120 --> 00:06:22,063
‫Très bien, et pendant ce

112
00:06:23,430 --> 00:06:25,743
‫temps, allons de l'avant et exigeons-le ici.

113
00:06:33,270 --> 00:06:34,980
‫Il faut donc slugify.

114
00:06:39,100 --> 00:06:41,893
‫Revenons à notre première fenêtre ici, en fait.

115
00:06:43,530 --> 00:06:46,220
‫Et maintenant, ici-bas, nous ne voulons plus

116
00:06:46,220 --> 00:06:48,550
‫enregistrer cela sur la console.

117
00:06:48,550 --> 00:06:51,720
‫Mais au lieu de cela, nous pouvons maintenant dire ceci,

118
00:06:51,720 --> 00:06:54,840
‫et n'oubliez pas qu'il s'agit du document actuellement traité.

119
00:06:54,840 --> 00:06:58,060
‫Nous pouvons donc maintenant définir une nouvelle propriété dessus.

120
00:06:58,060 --> 00:06:59,860
‫Et c'est exactement ce que je fais.

121
00:06:59,860 --> 00:07:03,250
‫Donc ça. slug devrait être slugify, puis

122
00:07:06,210 --> 00:07:08,390
‫juste une chaîne à partir de laquelle nous

123
00:07:08,390 --> 00:07:13,390
‫voulons créer un slug, et ça va être ça. name , puis nous voulons également

124
00:07:13,470 --> 00:07:15,890
‫transmettre l'option que tout doit

125
00:07:15,890 --> 00:07:18,653
‫être converti en minuscules, et c'est donc

126
00:07:19,970 --> 00:07:24,220
‫plus bas : true, et maintenant je vais le sauvegarder.

127
00:07:24,220 --> 00:07:26,290
‫Et une chose dont nous

128
00:07:26,290 --> 00:07:28,710
‫n'avons pas encore parlé est la fonction suivante.

129
00:07:28,710 --> 00:07:32,440
‫Ainsi, tout comme dans Express, nous avons également la fonction suivante dans

130
00:07:32,440 --> 00:07:35,300
‫le middleware mMngoose, essentiellement pour appeler le prochain middleware de

131
00:07:35,300 --> 00:07:37,780
‫la pile, comme nous le savons déjà.

132
00:07:37,780 --> 00:07:40,680
‫Maintenant, dans ce cas, nous n'avons qu'une seule

133
00:07:40,680 --> 00:07:43,100
‫fonction middleware, c'est pourquoi nous n'avons

134
00:07:43,100 --> 00:07:46,433
‫rencontré aucun problème, même pas d'appel suivant, mais faisons-le maintenant.

135
00:07:47,470 --> 00:07:50,040
‫Et ainsi, chaque fonction middleware, dans

136
00:07:50,040 --> 00:07:52,723
‫un middleware pré-sauvegardé, a accès à la suivante.

137
00:07:54,492 --> 00:07:57,700
‫C'est donc exactement la même chose que dans Express, et

138
00:07:57,700 --> 00:08:01,070
‫donc à la fin du middleware que nous appelons next, et

139
00:08:01,070 --> 00:08:03,300
‫qui appellera alors le middleware suivant

140
00:08:03,300 --> 00:08:04,583
‫dans la pile.

141
00:08:04,583 --> 00:08:07,540
‫Essayons donc à nouveau.

142
00:08:07,540 --> 00:08:10,556
‫Et ça s'appellera la tournée d'essai numéro deux.

143
00:08:10,556 --> 00:08:13,770
‫Très simple, envoyez à

144
00:08:13,770 --> 00:08:16,900
‫sky, et attendons.

145
00:08:16,900 --> 00:08:20,930
‫Et maintenant, pour une raison quelconque, ce n'est pas vraiment ici.

146
00:08:20,930 --> 00:08:22,950
‫Voyons si nous avons une erreur, et

147
00:08:22,950 --> 00:08:24,630
‫ce n'est pas le cas.

148
00:08:24,630 --> 00:08:27,570
‫Mais la raison pour laquelle cela ne fonctionne

149
00:08:27,570 --> 00:08:31,913
‫pas est qu'en ce moment nous n'avons aucun slug dans notre schéma.

150
00:08:31,913 --> 00:08:35,360
‫Et rappelez-vous que cela nous est déjà arrivé lorsque nous

151
00:08:35,360 --> 00:08:38,150
‫n'avions que quelques champs dans le schéma.

152
00:08:38,150 --> 00:08:40,150
‫Et lorsque nous définirons certains champs

153
00:08:40,150 --> 00:08:42,450
‫qui n'étaient pas dans le schéma, ils n'étaient

154
00:08:42,450 --> 00:08:44,770
‫tout simplement pas conservés dans la base de données.

155
00:08:44,770 --> 00:08:47,070
‫Et la même chose se produit maintenant ici,

156
00:08:47,070 --> 00:08:50,670
‫nous avons donc défini la propriété slug, mais ce n'est pas dans notre schéma.

157
00:08:50,670 --> 00:08:54,200
‫Et donc il n'a pas été enregistré dans la base de données,

158
00:08:54,200 --> 00:08:56,990
‫et donc corrigeons cela rapidement et mettons-le, oh, je

159
00:08:56,990 --> 00:08:59,490
‫ne sais pas, ça n'a pas vraiment d'importance,

160
00:08:59,490 --> 00:09:01,373
‫peut le mettre ici juste après

161
00:09:03,210 --> 00:09:06,253
‫le nom, donc le slug devrait être simplement une chaîne.

162
00:09:08,443 --> 00:09:10,363
‫Et donc ça devrait arranger ça.

163
00:09:11,610 --> 00:09:14,823
‫Revenons donc en arrière et créons la tournée d'essai numéro trois.

164
00:09:15,880 --> 00:09:18,220
‫Parce que ça ne peut pas être le même, parce que rappelez-vous que

165
00:09:18,220 --> 00:09:20,453
‫nous ne pouvons pas avoir de tournées avec le même nom.

166
00:09:22,260 --> 00:09:26,290
‫Alors recommencez, et maintenant, en effet, nous avons la propriété slug ici et

167
00:09:26,290 --> 00:09:29,900
‫elle est en effet basée sur le nom, comme vous pouvez

168
00:09:29,900 --> 00:09:31,170
‫le voir ici.

169
00:09:31,170 --> 00:09:33,853
‫Super, alors revenons ici, allons réduire

170
00:09:34,770 --> 00:09:36,463
‫un peu ça.

171
00:09:37,480 --> 00:09:40,957
‫Et donc ici, nous avons le middleware pré-document.

172
00:09:40,957 --> 00:09:44,000
‫Expérimentons maintenant très rapidement, également, avec

173
00:09:44,000 --> 00:09:45,593
‫un post middleware.

174
00:09:47,700 --> 00:09:52,700
‫Alors tourSchema. post et utilisons à nouveau save.

175
00:09:55,487 --> 00:09:58,740
‫Et puis la fonction de rappel, qui dans le cas

176
00:09:58,740 --> 00:10:01,090
‫du post middleware a accès

177
00:10:01,090 --> 00:10:03,860
‫non seulement au suivant, mais aussi au document

178
00:10:03,860 --> 00:10:06,823
‫qui vient d'être enregistré dans la base de données.

179
00:10:07,690 --> 00:10:10,883
‫Appelons-le donc un doc, puis le suivant.

180
00:10:12,193 --> 00:10:14,650
‫Et donc les fonctions post middleware

181
00:10:14,650 --> 00:10:17,750
‫sont exécutées une fois que toutes les fonctions

182
00:10:17,750 --> 00:10:20,090
‫pré middleware sont terminées, d'accord.

183
00:10:20,090 --> 00:10:23,440
‫Donc, ici, nous n'avons plus le mot-clé disk, mais à

184
00:10:23,440 --> 00:10:25,910
‫la place, nous avons le document essentiellement

185
00:10:25,910 --> 00:10:27,853
‫terminé ici dans la doc.

186
00:10:30,960 --> 00:10:34,650
‫Alors, enregistrons simplement ce document terminé sur la

187
00:10:34,650 --> 00:10:37,640
‫console, puis appelons le suivant.

188
00:10:37,640 --> 00:10:39,713
‫Maintenant, dans ce cas encore, nous

189
00:10:39,713 --> 00:10:43,200
‫n'avons qu'un seul middleware de poste et nous n'aurions donc pas vraiment

190
00:10:43,200 --> 00:10:46,860
‫besoin du suivant, mais c'est une bonne pratique de toujours l'inclure simplement.

191
00:10:46,860 --> 00:10:50,310
‫Maintenant, une autre chose que je voulais vous montrer est

192
00:10:50,310 --> 00:10:52,470
‫que nous pouvons avoir, bien sûr,

193
00:10:52,470 --> 00:10:56,283
‫plusieurs pré middlewares ou également post middlewares pour le même crochet.

194
00:10:57,270 --> 00:11:01,820
‫Et hook est ce que nous appelons cette sauvegarde ici.

195
00:11:01,820 --> 00:11:04,690
‫Donc, ce middleware ici est essentiellement

196
00:11:04,690 --> 00:11:07,810
‫ce que nous appelons un hook de pré-sauvegarde.

197
00:11:07,810 --> 00:11:11,490
‫Vous verrez donc cette terminologie tout le temps.

198
00:11:11,490 --> 00:11:14,173
‫Donc, certains l'appellent middleware, et certains l'appellent crochets.

199
00:11:15,270 --> 00:11:17,260
‫Et donc cela va être un crochet de

200
00:11:17,260 --> 00:11:18,773
‫pré-sauvegarde ou un middleware de pré-sauvegarde.

201
00:11:21,880 --> 00:11:25,823
‫Alors fonction, et celui-ci a accès au suivant.

202
00:11:28,770 --> 00:11:31,433
‫Et donc, enregistrons simplement quelque

203
00:11:33,780 --> 00:11:37,963
‫chose dans la console ici, comme enregistrer le document.

204
00:11:40,740 --> 00:11:45,023
‫Et puis ensuite, et cela bien sûr, devrait être le suivant.

205
00:11:46,880 --> 00:11:48,750
‫Juste pour voir si nous obtenons

206
00:11:48,750 --> 00:11:50,653
‫une erreur, je vais omettre la suivante ici.

207
00:11:51,490 --> 00:11:55,283
‫Juste pour voir ce qui se passe quand on ne l'appelle pas.

208
00:11:57,290 --> 00:11:59,080
‫Je vais donc créer une nouvelle

209
00:11:59,080 --> 00:12:01,230
‫tournée, et à la fin de cette conférence,

210
00:12:01,230 --> 00:12:04,543
‫je vais toutes les supprimer, mais pour l'instant nous en avons besoin ici.

211
00:12:06,410 --> 00:12:09,930
‫Et maintenant, vous voyez que ce n'est pas vraiment terminé, nous

212
00:12:09,930 --> 00:12:12,620
‫sommes donc coincés dans cette fonction middleware qui

213
00:12:12,620 --> 00:12:14,473
‫n'a pas l'appel suivant.

214
00:12:16,410 --> 00:12:18,343
‫Donc, fondamentalement, nous sommes coincés ici.

215
00:12:19,550 --> 00:12:20,970
‫Annulons donc la

216
00:12:22,810 --> 00:12:25,780
‫demande, puis récupérons-la ici, et

217
00:12:25,780 --> 00:12:27,173
‫réessayez.

218
00:12:29,550 --> 00:12:32,070
‫Et maintenant, cela a effectivement fonctionné.

219
00:12:32,070 --> 00:12:35,740
‫Notre slug est donc ici, à droite, et jetons donc

220
00:12:35,740 --> 00:12:38,590
‫un coup d'œil à notre console, et

221
00:12:38,590 --> 00:12:41,973
‫donc en effet, notre deuxième pré middleware fonctionne également,

222
00:12:42,850 --> 00:12:45,797
‫donc la seule journalisation enregistrera le document, puis

223
00:12:45,797 --> 00:12:49,320
‫notre post middleware puis connecté à la console le document

224
00:12:49,320 --> 00:12:51,570
‫final, et donc ça devrait

225
00:12:51,570 --> 00:12:55,043
‫aussi déjà avoir la limace et ouais, la voilà.

226
00:12:56,050 --> 00:12:57,870
‫Et c'est en fait tout ce

227
00:12:57,870 --> 00:13:00,360
‫que j'avais à vous montrer sur le middleware de document.

228
00:13:00,360 --> 00:13:03,065
‫Maintenant, je vais juste commenter ces deux ici parce

229
00:13:03,065 --> 00:13:06,680
‫que je ne veux pas polluer mon journal ici tout le temps

230
00:13:06,680 --> 00:13:09,110
‫avec ces consoles. logs, mais je les

231
00:13:09,110 --> 00:13:11,190
‫garde toujours ici, encore une fois,

232
00:13:11,190 --> 00:13:12,173
‫comme référence.

233
00:13:13,530 --> 00:13:16,330
‫Donc, ce que je veux que vous reteniez de cette conférence,

234
00:13:16,330 --> 00:13:18,980
‫c'est que nous pouvons avoir un middleware en cours d'exécution

235
00:13:18,980 --> 00:13:20,930
‫avant et après un certain événement.

236
00:13:20,930 --> 00:13:23,160
‫Et dans le cas d'un middleware

237
00:13:23,160 --> 00:13:25,850
‫de document, cet événement est généralement l'événement de sauvegarde.

238
00:13:25,850 --> 00:13:29,260
‫Et puis dans la fonction middleware elle-même, nous avons

239
00:13:29,260 --> 00:13:31,660
‫accès au mot-clé disk, qui

240
00:13:31,660 --> 00:13:35,163
‫va pointer vers le document en cours de sauvegarde.

241
00:13:36,190 --> 00:13:38,232
‫Et il est également très important de

242
00:13:38,232 --> 00:13:42,650
‫garder à l'esprit que ce middleware de sauvegarde ne s'exécute que pour les méthodes de

243
00:13:42,650 --> 00:13:44,650
‫sauvegarde et de création de Mongoose.

244
00:13:44,650 --> 00:13:47,690
‫Cela ne fonctionnera pas, par exemple, pour insérer plusieurs et pas

245
00:13:47,690 --> 00:13:50,490
‫non plus pour en trouver un et mettre à jour

246
00:13:50,490 --> 00:13:54,380
‫ou rechercher par ID et mettre à jour, ce que nous avons déjà utilisé auparavant.

247
00:13:54,380 --> 00:13:58,110
‫Ainsi, par exemple, nous avons quelque part ici,

248
00:14:00,870 --> 00:14:04,960
‫nous avons findByIdAndUpdate, mais cela ne déclenchera pas ce

249
00:14:04,960 --> 00:14:06,862
‫middleware de sauvegarde.

250
00:14:06,862 --> 00:14:09,610
‫C'est donc très important à garder à l'esprit

251
00:14:09,610 --> 00:14:11,550
‫car en fait, un peu

252
00:14:11,550 --> 00:14:14,950
‫plus tard dans ce projet, nous devrons contourner cette limitation.

253
00:14:14,950 --> 00:14:17,160
‫Très bien, il s'agit donc

254
00:14:17,160 --> 00:14:20,880
‫d'un middleware de document pour manipuler les documents en cours d'enregistrement.

255
00:14:20,880 --> 00:14:23,833
‫Ensuite, nous allons parler de l'intergiciel de requête.

