﻿1
00:00:01,100 --> 00:00:02,860
‫Istruttore: Proprio come

2
00:00:02,860 --> 00:00:06,080
‫Express, anche Mongoose ha il concetto di middleware.

3
00:00:06,080 --> 00:00:08,270
‫E così ora impariamo a conoscere il

4
00:00:08,270 --> 00:00:11,163
‫primo tipo di middleware, che è il middleware dei documenti.

5
00:00:12,830 --> 00:00:15,330
‫Ora, proprio come con Express, possiamo usare

6
00:00:15,330 --> 00:00:17,860
‫il middleware Mongoose per far succedere qualcosa

7
00:00:17,860 --> 00:00:19,430
‫tra due eventi.

8
00:00:19,430 --> 00:00:22,740
‫Ad esempio, ogni volta che un nuovo

9
00:00:22,740 --> 00:00:25,740
‫documento viene salvato nel database, possiamo

10
00:00:25,740 --> 00:00:29,450
‫eseguire una funzione tra il comando di salvataggio e

11
00:00:29,450 --> 00:00:33,480
‫l'effettivo salvataggio del documento, oppure anche dopo l'effettivo salvataggio.

12
00:00:33,480 --> 00:00:35,820
‫E questo è il motivo per cui

13
00:00:35,820 --> 00:00:38,590
‫il middleware Mongoose è anche chiamato pre e post hook.

14
00:00:38,590 --> 00:00:41,140
‫Ancora una volta, perché possiamo definire funzioni

15
00:00:41,140 --> 00:00:44,710
‫da eseguire prima o dopo un determinato evento, come

16
00:00:44,710 --> 00:00:47,100
‫salvare un documento nel database.

17
00:00:47,100 --> 00:00:52,100
‫Quindi il middleware è un concetto assolutamente fondamentale in

18
00:00:52,100 --> 00:00:55,180
‫Mongoose, proprio come in Express.

19
00:00:55,180 --> 00:00:57,190
‫E ci sono un sacco di

20
00:00:57,190 --> 00:00:59,780
‫possibilità e casi d'uso per il middleware, e

21
00:00:59,780 --> 00:01:02,540
‫useremo il middleware tutto il tempo in questo progetto.

22
00:01:02,540 --> 00:01:06,050
‫Quindi ci sono quattro tipi di middleware

23
00:01:06,050 --> 00:01:10,080
‫in Mongoose: documento, query, aggregazione e middleware di modello.

24
00:01:10,080 --> 00:01:12,110
‫E in questa lezione

25
00:01:12,110 --> 00:01:14,410
‫parleremo del middleware del documento, che

26
00:01:14,410 --> 00:01:18,110
‫è un middleware che può agire sul documento attualmente elaborato.

27
00:01:18,110 --> 00:01:20,920
‫Quindi, proprio come le proprietà virtuali,

28
00:01:20,920 --> 00:01:23,613
‫definiamo un middleware sullo schema,

29
00:01:25,800 --> 00:01:28,543
‫quindi tourSchema. pre.

30
00:01:30,030 --> 00:01:32,850
‫E quindi questo è per il pre middleware, che di

31
00:01:32,850 --> 00:01:35,450
‫nuovo verrà eseguito prima di un evento reale.

32
00:01:35,450 --> 00:01:39,360
‫E quell'evento in questo caso è l'evento di salvataggio.

33
00:01:39,360 --> 00:01:41,350
‫E quindi questa funzione di richiamata

34
00:01:41,350 --> 00:01:42,613
‫che definiremo qui

35
00:01:43,870 --> 00:01:44,820
‫di seguito,

36
00:01:48,200 --> 00:01:51,980
‫quindi funzione in modo che questa funzione venga chiamata prima che un

37
00:01:51,980 --> 00:01:53,943
‫documento effettivo venga salvato nel database.

38
00:01:55,407 --> 00:02:00,407
‫Quindi questo è il middleware dei documenti e

39
00:02:02,010 --> 00:02:05,910
‫funziona, lasciami scrivere tutto qui.

40
00:02:05,910 --> 00:02:09,640
‫Quindi viene eseguito prima del comando save

41
00:02:10,550 --> 00:02:13,953
‫e del . comando crea.

42
00:02:14,860 --> 00:02:17,040
‫Ma non su inserire molti.

43
00:02:17,040 --> 00:02:22,040
‫Quindi, se usiamo questo comando qui, quindi insertMany, in realtà

44
00:02:22,450 --> 00:02:26,153
‫non attiverà il middleware di salvataggio.

45
00:02:27,600 --> 00:02:29,140
‫Quindi tienilo sempre a mente.

46
00:02:29,140 --> 00:02:32,780
‫È molto importante rendersi conto che solo al

47
00:02:32,780 --> 00:02:35,560
‫salvataggio e alla creazione questo middleware

48
00:02:35,560 --> 00:02:36,943
‫verrà eseguito.

49
00:02:38,929 --> 00:02:41,740
‫E quindi iniziamo facendo una semplice console. log e quello

50
00:02:42,670 --> 00:02:45,253
‫che registrerò tramite la console è questo.

51
00:02:46,350 --> 00:02:49,870
‫E così in un middleware di salvataggio, la parola

52
00:02:49,870 --> 00:02:53,100
‫chiave disk qui punterà al documento attualmente elaborato.

53
00:02:53,100 --> 00:02:56,640
‫E questo è il motivo per cui viene chiamato middleware di documenti.

54
00:02:56,640 --> 00:02:58,740
‫Di nuovo, perché in questa

55
00:02:58,740 --> 00:03:02,470
‫funzione qui abbiamo accesso al documento che viene elaborato.

56
00:03:02,470 --> 00:03:05,133
‫Quindi, in questo caso, il documento che viene salvato.

57
00:03:06,078 --> 00:03:09,240
‫E quindi lascia che te lo mostri molto rapidamente usando

58
00:03:09,240 --> 00:03:11,300
‫questa console. tronco d'albero.

59
00:03:11,300 --> 00:03:13,610
‫Quindi, per attivare ora questa funzione,

60
00:03:13,610 --> 00:03:17,800
‫ricorda che dobbiamo eseguire un comando di salvataggio o un comando di creazione.

61
00:03:17,800 --> 00:03:22,020
‫E quindi ora dobbiamo creare un nuovo tour usando la

62
00:03:22,020 --> 00:03:26,013
‫nostra API per, sì, per poi attivare questo middleware.

63
00:03:27,680 --> 00:03:32,680
‫Quindi andiamo qui, al postino, e comincerò salvando questi due

64
00:03:33,880 --> 00:03:36,830
‫nuovi percorsi che abbiamo creato

65
00:03:38,450 --> 00:03:42,313
‫nelle lezioni precedenti, quindi prendi un piano mensile.

66
00:03:47,300 --> 00:03:52,300
‫E questo qui è ottenere le statistiche del tour.

67
00:03:56,031 --> 00:03:59,523
‫Quindi ora posso chiuderli e creare un nuovo tour.

68
00:04:00,430 --> 00:04:03,060
‫E specifichiamo i dati qui nel corpo.

69
00:04:03,060 --> 00:04:06,300
‫Ora non tutte le cose qui sono effettivamente necessarie,

70
00:04:06,300 --> 00:04:08,730
‫quindi diamo un'occhiata a ciò che è

71
00:04:08,730 --> 00:04:11,040
‫effettivamente richiesto e liberiamoci del resto.

72
00:04:11,040 --> 00:04:13,483
‫Quindi è necessaria l'immagineCover,

73
00:04:14,610 --> 00:04:18,500
‫il riepilogo, ovviamente il prezzo e sì.

74
00:04:18,500 --> 00:04:20,830
‫Quindi liberiamoci delle cose di cui non

75
00:04:21,760 --> 00:04:24,483
‫abbiamo davvero bisogno qui solo per mantenerle al minimo.

76
00:04:26,000 --> 00:04:28,730
‫Quindi le valutazioni, la quantità, la media, quindi queste

77
00:04:28,730 --> 00:04:30,080
‫non sono necessarie.

78
00:04:36,550 --> 00:04:38,490
‫Quindi chiamerò questo

79
00:04:38,490 --> 00:04:43,490
‫qui il tour di prova, solo per renderlo davvero semplice qui.

80
00:04:45,702 --> 00:04:49,370
‫Ora inviamo questa richiesta e infatti, ha creato

81
00:04:49,370 --> 00:04:52,420
‫il nuovo documento e ora diamo

82
00:04:52,420 --> 00:04:56,370
‫un'occhiata alla nostra console e vediamo quel documento qui.

83
00:04:56,370 --> 00:04:58,650
‫E infatti, eccolo qui.

84
00:04:58,650 --> 00:05:01,540
‫Quindi aumentiamo un po' questo qui

85
00:05:01,540 --> 00:05:04,900
‫e quindi questo è l'aspetto del nostro

86
00:05:04,900 --> 00:05:08,510
‫documento appena prima di essere salvato nel database.

87
00:05:08,510 --> 00:05:11,710
‫E quindi qui abbiamo valutazioniMedia e quantità, che sono

88
00:05:11,710 --> 00:05:13,500
‫impostate per impostazione predefinita.

89
00:05:13,500 --> 00:05:17,077
‫Ricorda, quindi 4. 5 e zero, e

90
00:05:19,185 --> 00:05:21,930
‫poi il timestamp createAt, e puoi anche vedere

91
00:05:21,930 --> 00:05:24,523
‫la proprietà virtuale che abbiamo definito qui.

92
00:05:25,700 --> 00:05:28,100
‫Quindi, di nuovo, questo è giusto prima di

93
00:05:28,100 --> 00:05:30,140
‫salvare effettivamente questi dati nel database.

94
00:05:30,140 --> 00:05:31,410
‫Quindi, a questo punto,

95
00:05:31,410 --> 00:05:34,600
‫possiamo ancora agire sui dati prima che vengano salvati

96
00:05:34,600 --> 00:05:36,920
‫nel database ed è esattamente quello che

97
00:05:36,920 --> 00:05:38,173
‫faremo ora.

98
00:05:39,520 --> 00:05:43,240
‫Quindi quaggiù nella nostra funzione middleware.

99
00:05:43,240 --> 00:05:45,900
‫E quello che voglio fare qui è creare una

100
00:05:45,900 --> 00:05:48,120
‫lumaca per ciascuno di questi documenti.

101
00:05:48,120 --> 00:05:50,080
‫Quindi ricorda come nella prima sezione

102
00:05:50,080 --> 00:05:52,510
‫abbiamo creato una lumaca per ciascuno dei prodotti

103
00:05:52,510 --> 00:05:54,313
‫che avevamo nel negozio.

104
00:05:55,180 --> 00:05:57,860
‫E quindi una lumaca è fondamentalmente solo

105
00:05:57,860 --> 00:06:01,590
‫una stringa che possiamo inserire nell'URL, di solito basata su

106
00:06:01,590 --> 00:06:03,570
‫una stringa come il nome.

107
00:06:03,570 --> 00:06:05,780
‫Quindi, in questo caso, creeremo una lumaca basata

108
00:06:05,780 --> 00:06:07,433
‫qui sul nome del tour.

109
00:06:09,150 --> 00:06:14,150
‫Quindi ricorda come per questo abbiamo usato il pacchetto slugify.

110
00:06:14,210 --> 00:06:16,360
‫E quindi ora andiamo avanti e installiamolo.

111
00:06:20,120 --> 00:06:22,063
‫Va bene, e mentre ciò

112
00:06:23,430 --> 00:06:25,743
‫accade, andiamo avanti e poi richiediamolo qui.

113
00:06:33,270 --> 00:06:34,980
‫Quindi richiedono slugify.

114
00:06:39,100 --> 00:06:41,893
‫Torniamo alla nostra prima finestra qui, in realtà.

115
00:06:43,530 --> 00:06:46,220
‫E ora, quaggiù, non vogliamo

116
00:06:46,220 --> 00:06:48,550
‫più registrarlo sulla console.

117
00:06:48,550 --> 00:06:51,720
‫Ma invece ora possiamo dire questo, e ricorda,

118
00:06:51,720 --> 00:06:54,840
‫questo è il documento attualmente elaborato.

119
00:06:54,840 --> 00:06:58,060
‫Quindi ora possiamo definire una nuova proprietà su di esso.

120
00:06:58,060 --> 00:06:59,860
‫Ed è esattamente quello che sto facendo.

121
00:06:59,860 --> 00:07:03,250
‫Così questo. slug dovrebbe essere slugify,

122
00:07:06,210 --> 00:07:08,390
‫e quindi solo una stringa da cui

123
00:07:08,390 --> 00:07:13,390
‫vogliamo creare uno slug, e quindi sarà questo. name e poi vogliamo anche passare

124
00:07:13,470 --> 00:07:15,890
‫nell'opzione che tutto dovrebbe

125
00:07:15,890 --> 00:07:18,653
‫essere convertito in minuscolo, e quindi questo

126
00:07:19,970 --> 00:07:24,220
‫è più basso: vero, e ora gli darò un salvataggio.

127
00:07:24,220 --> 00:07:26,290
‫E una cosa di cui

128
00:07:26,290 --> 00:07:28,710
‫non abbiamo ancora parlato è la funzione successiva.

129
00:07:28,710 --> 00:07:32,440
‫Quindi, proprio come in Express, abbiamo anche la funzione successiva

130
00:07:32,440 --> 00:07:35,300
‫nel middleware mMngoose, fondamentalmente per chiamare il prossimo

131
00:07:35,300 --> 00:07:37,780
‫middleware nello stack come già sappiamo.

132
00:07:37,780 --> 00:07:40,680
‫Ora, in questo caso, abbiamo solo una funzione

133
00:07:40,680 --> 00:07:43,100
‫middleware, motivo per cui non abbiamo

134
00:07:43,100 --> 00:07:46,433
‫riscontrato alcun problema, nemmeno chiamando next, ma ora facciamolo.

135
00:07:47,470 --> 00:07:50,040
‫E così ogni funzione middleware, in

136
00:07:50,040 --> 00:07:52,723
‫un middleware pre-salvataggio, ha accesso a quella successiva.

137
00:07:54,492 --> 00:07:57,700
‫Quindi è esattamente lo stesso di Express, e

138
00:07:57,700 --> 00:08:01,070
‫quindi entro la fine del middleware chiamiamo next, e

139
00:08:01,070 --> 00:08:03,300
‫questo chiamerà il prossimo middleware

140
00:08:03,300 --> 00:08:04,583
‫nello stack.

141
00:08:04,583 --> 00:08:07,540
‫Quindi proviamo di nuovo.

142
00:08:07,540 --> 00:08:10,556
‫E questo si chiamerà test tour numero due.

143
00:08:10,556 --> 00:08:13,770
‫Molto semplice, manda in

144
00:08:13,770 --> 00:08:16,900
‫cielo, e aspettiamo.

145
00:08:16,900 --> 00:08:20,930
‫E ora, per qualche ragione, non è proprio qui.

146
00:08:20,930 --> 00:08:22,950
‫Vediamo se abbiamo avuto qualche errore, e

147
00:08:22,950 --> 00:08:24,630
‫in realtà non l'abbiamo fatto.

148
00:08:24,630 --> 00:08:27,570
‫Ma il motivo per cui non funziona

149
00:08:27,570 --> 00:08:31,913
‫è che in questo momento non abbiamo alcuna lumaca nel nostro schema.

150
00:08:31,913 --> 00:08:35,360
‫E ricorda che questo ci è successo prima quando avevamo

151
00:08:35,360 --> 00:08:38,150
‫solo un paio di campi nello schema.

152
00:08:38,150 --> 00:08:40,150
‫E quando noi, allora definiremo

153
00:08:40,150 --> 00:08:42,450
‫alcuni campi che non erano nello schema,

154
00:08:42,450 --> 00:08:44,770
‫quindi semplicemente non erano mantenuti nel database.

155
00:08:44,770 --> 00:08:47,070
‫E la stessa cosa sta succedendo qui,

156
00:08:47,070 --> 00:08:50,670
‫quindi abbiamo definito la proprietà slug, ma non è nel nostro schema.

157
00:08:50,670 --> 00:08:54,200
‫E quindi non è stato salvato nel database, quindi risolviamolo

158
00:08:54,200 --> 00:08:56,990
‫rapidamente e mettiamolo, oh, non lo so, non

159
00:08:56,990 --> 00:08:59,490
‫ha molta importanza, possiamo metterlo qui

160
00:08:59,490 --> 00:09:01,373
‫subito dopo il nome,

161
00:09:03,210 --> 00:09:06,253
‫quindi la lumaca dovrebbe essere semplicemente una stringa.

162
00:09:08,443 --> 00:09:10,363
‫E quindi dovrebbe risolverlo.

163
00:09:11,610 --> 00:09:14,823
‫Quindi torniamo indietro e creiamo il tour di prova numero tre.

164
00:09:15,880 --> 00:09:18,220
‫Perché non può essere lo stesso, perché ricorda che

165
00:09:18,220 --> 00:09:20,453
‫non possiamo avere tour con lo stesso nome.

166
00:09:22,260 --> 00:09:26,290
‫Quindi fallo di nuovo, e ora in effetti abbiamo la proprietà

167
00:09:26,290 --> 00:09:29,900
‫slug proprio qui ed è davvero basata sul nome, come

168
00:09:29,900 --> 00:09:31,170
‫puoi vedere qui.

169
00:09:31,170 --> 00:09:33,853
‫Ottimo, quindi torniamo qui, riduciamo

170
00:09:34,770 --> 00:09:36,463
‫questo un po'.

171
00:09:37,480 --> 00:09:40,957
‫E così qui abbiamo il middleware pre-documento.

172
00:09:40,957 --> 00:09:44,000
‫Sperimentiamo ora molto velocemente anche con

173
00:09:44,000 --> 00:09:45,593
‫un post middleware.

174
00:09:47,700 --> 00:09:52,700
‫Quindi tourSchema. posta e usiamo di nuovo save.

175
00:09:55,487 --> 00:09:58,740
‫E poi la funzione di callback, che nel caso

176
00:09:58,740 --> 00:10:01,090
‫di post middleware ha accesso

177
00:10:01,090 --> 00:10:03,860
‫non solo al next, ma anche al

178
00:10:03,860 --> 00:10:06,823
‫documento che è stato appena salvato nel database.

179
00:10:07,690 --> 00:10:10,883
‫Quindi chiamiamolo un documento e poi il prossimo.

180
00:10:12,193 --> 00:10:14,650
‫E così le funzioni post middleware vengono

181
00:10:14,650 --> 00:10:17,750
‫eseguite dopo che tutte le funzioni pre middleware

182
00:10:17,750 --> 00:10:20,090
‫sono state completate, va bene.

183
00:10:20,090 --> 00:10:23,440
‫Quindi qui in realtà non abbiamo più la parola chiave

184
00:10:23,440 --> 00:10:25,910
‫disk, ma abbiamo invece il documento sostanzialmente

185
00:10:25,910 --> 00:10:27,853
‫finito qui in doc.

186
00:10:30,960 --> 00:10:34,650
‫Quindi registriamo il documento finito sulla console

187
00:10:34,650 --> 00:10:37,640
‫e poi chiamiamo next.

188
00:10:37,640 --> 00:10:39,713
‫Anche in questo caso, abbiamo

189
00:10:39,713 --> 00:10:43,200
‫solo un middleware post e quindi non avremmo bisogno

190
00:10:43,200 --> 00:10:46,860
‫di quello successivo, ma è una buona pratica includerlo sempre.

191
00:10:46,860 --> 00:10:50,310
‫Un'altra cosa che volevo mostrarvi è che possiamo

192
00:10:50,310 --> 00:10:52,470
‫avere, ovviamente, più middleware

193
00:10:52,470 --> 00:10:56,283
‫pre o anche post middleware per lo stesso hook.

194
00:10:57,270 --> 00:11:01,820
‫E hook è ciò che chiamiamo questo salvataggio qui.

195
00:11:01,820 --> 00:11:04,690
‫Quindi questo middleware qui è

196
00:11:04,690 --> 00:11:07,810
‫fondamentalmente ciò che chiamiamo hook pre-salvataggio.

197
00:11:07,810 --> 00:11:11,490
‫Quindi vedrai quella terminologia tutto il tempo.

198
00:11:11,490 --> 00:11:14,173
‫Quindi alcuni lo chiamano middleware e altri lo chiamano hook.

199
00:11:15,270 --> 00:11:17,260
‫E quindi questo sarà un hook pre-salvataggio

200
00:11:17,260 --> 00:11:18,773
‫o un middleware pre-salvataggio.

201
00:11:21,880 --> 00:11:25,823
‫Quindi funzione, e questo ha accesso al prossimo.

202
00:11:28,770 --> 00:11:31,433
‫E quindi registriamo qui

203
00:11:33,780 --> 00:11:37,963
‫qualcosa sulla console, ad esempio salverà il documento.

204
00:11:40,740 --> 00:11:45,023
‫E poi il prossimo, e quello, ovviamente, dovrebbe essere il prossimo.

205
00:11:46,880 --> 00:11:48,750
‫Giusto per vedere se otteniamo

206
00:11:48,750 --> 00:11:50,653
‫qualche errore, ometterò il prossimo qui.

207
00:11:51,490 --> 00:11:55,283
‫Giusto per vedere cosa succede quando non lo chiamiamo.

208
00:11:57,290 --> 00:11:59,080
‫Quindi creerò un nuovo

209
00:11:59,080 --> 00:12:01,230
‫tour ed entro la fine di questa

210
00:12:01,230 --> 00:12:04,543
‫lezione li cancellerò tutti, ma per ora ne abbiamo bisogno qui.

211
00:12:06,410 --> 00:12:09,930
‫E così ora vedi che non sta finendo davvero, quindi

212
00:12:09,930 --> 00:12:12,620
‫siamo bloccati in quella funzione middleware che non

213
00:12:12,620 --> 00:12:14,473
‫ha la chiamata successiva.

214
00:12:16,410 --> 00:12:18,343
‫Quindi in pratica siamo bloccati qui.

215
00:12:19,550 --> 00:12:20,970
‫Quindi annulliamo la

216
00:12:22,810 --> 00:12:25,780
‫richiesta e poi la riportiamo qui

217
00:12:25,780 --> 00:12:27,173
‫e riproviamo.

218
00:12:29,550 --> 00:12:32,070
‫E così ora funzionava davvero.

219
00:12:32,070 --> 00:12:35,740
‫Quindi il nostro slug è qui, giusto, e quindi diamo

220
00:12:35,740 --> 00:12:38,590
‫un'occhiata alla nostra console, e quindi in

221
00:12:38,590 --> 00:12:41,973
‫effetti, anche il nostro secondo middleware pre viene eseguito,

222
00:12:42,850 --> 00:12:45,797
‫quindi l'unico logging salverà il documento e poi

223
00:12:45,797 --> 00:12:49,320
‫il nostro middleware post quindi accedi alla console il documento

224
00:12:49,320 --> 00:12:51,570
‫finale, e quindi anche quello

225
00:12:51,570 --> 00:12:55,043
‫dovrebbe già avere la lumaca e sì, eccolo qui.

226
00:12:56,050 --> 00:12:57,870
‫E questo è tutto ciò

227
00:12:57,870 --> 00:13:00,360
‫che avevo da mostrarti sul middleware dei documenti.

228
00:13:00,360 --> 00:13:03,065
‫Ora commenterò questi due qui perché non

229
00:13:03,065 --> 00:13:06,680
‫voglio inquinare il mio log qui tutto il tempo con

230
00:13:06,680 --> 00:13:09,110
‫queste console. log, ma li

231
00:13:09,110 --> 00:13:11,190
‫tengo ancora qui, di nuovo,

232
00:13:11,190 --> 00:13:12,173
‫come riferimento.

233
00:13:13,530 --> 00:13:16,330
‫Quindi quello che voglio che ricordiate da questa lezione

234
00:13:16,330 --> 00:13:18,980
‫è che possiamo avere un middleware in esecuzione prima

235
00:13:18,980 --> 00:13:20,930
‫e dopo un determinato evento.

236
00:13:20,930 --> 00:13:23,160
‫E nel caso del middleware

237
00:13:23,160 --> 00:13:25,850
‫del documento, quell'evento è solitamente l'evento di salvataggio.

238
00:13:25,850 --> 00:13:29,260
‫E poi nella stessa funzione middleware, abbiamo accesso

239
00:13:29,260 --> 00:13:31,660
‫alla parola chiave disk, che

240
00:13:31,660 --> 00:13:35,163
‫punterà al documento attualmente in fase di salvataggio.

241
00:13:36,190 --> 00:13:38,232
‫Ed è anche molto importante tenere

242
00:13:38,232 --> 00:13:42,650
‫presente che questo middleware di salvataggio viene eseguito solo per il salvataggio e

243
00:13:42,650 --> 00:13:44,650
‫la creazione di metodi Mongoose.

244
00:13:44,650 --> 00:13:47,690
‫Non verrà eseguito, ad esempio, per inserire molti

245
00:13:47,690 --> 00:13:50,490
‫e nemmeno per trovarne uno e aggiornare

246
00:13:50,490 --> 00:13:54,380
‫o trovare per ID e aggiornare, che abbiamo già usato prima.

247
00:13:54,380 --> 00:13:58,110
‫Quindi, per esempio, da qualche parte

248
00:14:00,870 --> 00:14:04,960
‫qui abbiamo findByIdAndUpdate, ma questo non attiverà questo

249
00:14:04,960 --> 00:14:06,862
‫middleware di salvataggio.

250
00:14:06,862 --> 00:14:09,610
‫Quindi è molto importante tenerlo a mente perché

251
00:14:09,610 --> 00:14:11,550
‫in realtà un po'

252
00:14:11,550 --> 00:14:14,950
‫più avanti in questo progetto dovremo aggirare questa limitazione.

253
00:14:14,950 --> 00:14:17,160
‫Va bene, quindi questo è un

254
00:14:17,160 --> 00:14:20,880
‫middleware di documenti per manipolare i documenti che vengono attualmente salvati.

255
00:14:20,880 --> 00:14:23,833
‫Successivamente, parleremo del middleware di query.

