﻿1
00:00:01,210 --> 00:00:03,880
‫Istruttore: Quindi, dopo tutto il discorso sul middleware,

2
00:00:03,880 --> 00:00:05,290
‫ora andiamo avanti

3
00:00:05,290 --> 00:00:07,463
‫e creiamo le nostre funzioni middleware.

4
00:00:09,000 --> 00:00:10,810
‫E ancora, ricorda che in

5
00:00:10,810 --> 00:00:12,930
‫realtà abbiamo già usato il middleware prima.

6
00:00:12,930 --> 00:00:14,380
‫Quindi diamo un'occhiata a questo.

7
00:00:15,730 --> 00:00:18,350
‫E, da qualche parte quassù.

8
00:00:18,350 --> 00:00:20,450
‫E così, vedi che per

9
00:00:20,450 --> 00:00:24,530
‫usare il middleware, abbiamo usato l'uso del punto dell'app, ok?

10
00:00:24,530 --> 00:00:28,190
‫Quindi, il metodo use è quello che usiamo per, sì,

11
00:00:28,190 --> 00:00:30,030
‫usare effettivamente il middleware.

12
00:00:30,030 --> 00:00:33,800
‫Quindi, aggiungi il middleware al nostro stack di middleware, ok?

13
00:00:33,800 --> 00:00:37,520
‫Quindi questo punto json espresso qui chiamando questo metodo json

14
00:00:37,520 --> 00:00:39,620
‫fondamentalmente restituisce una funzione, ok?

15
00:00:39,620 --> 00:00:42,650
‫E quindi quella funzione viene quindi aggiunta allo stack del middleware.

16
00:00:42,650 --> 00:00:43,900
‫E così, in

17
00:00:43,900 --> 00:00:46,220
‫modo simile, possiamo creare la nostra funzione middleware.

18
00:00:46,220 --> 00:00:48,190
‫Quindi, facciamolo ora.

19
00:00:48,190 --> 00:00:51,283
‫E quindi, ovviamente, dobbiamo ancora usare l'uso del punto dell'app.

20
00:00:53,840 --> 00:00:56,810
‫Ok, quindi ora, qui, tutto ciò che dobbiamo fare

21
00:00:56,810 --> 00:01:00,820
‫è tracciare il percorso nella nostra funzione che vogliamo aggiungere allo stack del middleware.

22
00:01:00,820 --> 00:01:02,730
‫Quindi, ricorda dall'ultimo video che,

23
00:01:02,730 --> 00:01:04,520
‫ovviamente, in ogni

24
00:01:04,520 --> 00:01:08,340
‫funzione middleware, abbiamo accesso alla richiesta e alla risposta, ok?

25
00:01:08,340 --> 00:01:10,663
‫Ma abbiamo anche la funzione successiva.

26
00:01:11,890 --> 00:01:15,060
‫E così, proprio così, modifichiamo come terzo argomento

27
00:01:15,060 --> 00:01:17,580
‫di questa funzione middleware, ok?

28
00:01:17,580 --> 00:01:19,970
‫E così, express sa che

29
00:01:19,970 --> 00:01:22,370
‫in realtà stiamo definendo un middleware qui.

30
00:01:23,270 --> 00:01:24,820
‫Bene.

31
00:01:24,820 --> 00:01:26,160
‫Ora, proprio come

32
00:01:26,160 --> 00:01:28,920
‫prima, in realtà, avremmo potuto chiamare questo

33
00:01:28,920 --> 00:01:32,950
‫argomento qui qualcos'altro, come X, o N, o non importa.

34
00:01:32,950 --> 00:01:34,270
‫Ciò che conta è

35
00:01:34,270 --> 00:01:36,540
‫che è il terzo argomento di questa funzione.

36
00:01:36,540 --> 00:01:39,360
‫Quindi express passa sostanzialmente la funzione

37
00:01:39,360 --> 00:01:42,780
‫successiva come terzo argomento in questa funzione middleware.

38
00:01:42,780 --> 00:01:44,500
‫E poi possiamo chiamarlo come vogliamo.

39
00:01:44,500 --> 00:01:47,720
‫Ma ancora una volta, la prossima è davvero la

40
00:01:47,720 --> 00:01:49,420
‫convenzione espressa, e

41
00:01:49,420 --> 00:01:52,450
‫per evitare confusione, usiamo sempre questo nome, ok?

42
00:01:52,450 --> 00:01:54,250
‫E lo stesso per richiesta

43
00:01:54,250 --> 00:01:57,590
‫e risposta, come ho detto prima, potremmo chiamarli in altro modo.

44
00:01:57,590 --> 00:02:00,410
‫Ma la convenzione è chiamarli così.

45
00:02:00,410 --> 00:02:02,470
‫Ad ogni modo, registriamo qualcosa sulla console,

46
00:02:02,470 --> 00:02:04,080
‫qui in questa funzione middleware,

47
00:02:04,080 --> 00:02:06,650
‫solo così abbiamo del codice da eseguire effettivamente ogni

48
00:02:06,650 --> 00:02:08,423
‫volta che c'è una nuova richiesta.

49
00:02:09,280 --> 00:02:10,410
‫Salutiamoci

50
00:02:12,510 --> 00:02:13,753
‫dal middleware.

51
00:02:15,850 --> 00:02:18,980
‫E aggiungi un po' di emoji qui, di nuovo, per farlo risaltare un po'.

52
00:02:18,980 --> 00:02:20,133
‫Mi piace molto.

53
00:02:21,876 --> 00:02:22,709
‫E cosa succede qui?

54
00:02:22,709 --> 00:02:23,750
‫Ah giusto.

55
00:02:23,750 --> 00:02:26,210
‫Quindi questo è il codice che vogliamo eseguire qui.

56
00:02:26,210 --> 00:02:28,690
‫E ora, proprio come abbiamo parlato

57
00:02:28,690 --> 00:02:31,780
‫nell'ultimo video, dobbiamo effettivamente chiamare la funzione successiva, ok?

58
00:02:31,780 --> 00:02:33,510
‫E se non avessimo chiamato

59
00:02:33,510 --> 00:02:35,570
‫il prossimo qui, beh, allora il ciclo

60
00:02:35,570 --> 00:02:37,750
‫di richiesta/risposta sarebbe davvero bloccato a questo punto.

61
00:02:37,750 --> 00:02:39,290
‫Non saremmo in grado

62
00:02:39,290 --> 00:02:43,090
‫di andare avanti e non rispediremmo mai una risposta al cliente.

63
00:02:43,090 --> 00:02:45,660
‫Quindi non posso sottolineare abbastanza quanto sia importante

64
00:02:45,660 --> 00:02:48,773
‫non dimenticare mai di usare next in tutto il tuo middleware.

65
00:02:50,230 --> 00:02:52,290
‫Ok, ed è così semplice.

66
00:02:52,290 --> 00:02:55,880
‫Tutto quello che dobbiamo fare è specificare il prossimo.

67
00:02:55,880 --> 00:02:57,330
‫Quindi, questo argomento qui.

68
00:02:57,330 --> 00:02:59,820
‫E poi chiama effettivamente quella funzione in questo modo.

69
00:02:59,820 --> 00:03:00,653
‫Va bene.

70
00:03:00,653 --> 00:03:03,087
‫E con questo, siamo effettivamente pronti per testarlo.

71
00:03:03,087 --> 00:03:04,370
‫E tutto ciò che

72
00:03:04,370 --> 00:03:06,763
‫dobbiamo fare è inviare una semplice richiesta alla nostra API.

73
00:03:08,900 --> 00:03:11,270
‫Quindi, ecco l'API.

74
00:03:11,270 --> 00:03:13,083
‫Chiudiamo questo qui.

75
00:03:14,210 --> 00:03:16,560
‫E quindi, poco importa, perché

76
00:03:16,560 --> 00:03:18,980
‫questo, ovviamente, vale per ogni singola richiesta.

77
00:03:18,980 --> 00:03:20,420
‫Allora, torniamo indietro.

78
00:03:20,420 --> 00:03:22,760
‫E in effetti, abbiamo ricevuto il

79
00:03:22,760 --> 00:03:25,400
‫saluto dal middleware registrato sulla nostra console, ok?

80
00:03:25,400 --> 00:03:26,313
‫Quindi, fantastico.

81
00:03:27,240 --> 00:03:30,140
‫E volevo toccare rapidamente ciò che ho appena

82
00:03:30,140 --> 00:03:32,150
‫detto prima, ovvero che questo

83
00:03:32,150 --> 00:03:35,160
‫middleware qui si applica a ogni singola richiesta, ok?

84
00:03:35,160 --> 00:03:37,600
‫E questo perché non abbiamo specificato alcun percorso.

85
00:03:37,600 --> 00:03:40,850
‫Quindi, ricorda che prima ho detto che tutti i gestori di route

86
00:03:40,850 --> 00:03:43,710
‫qui sono in realtà una specie di middleware stessi.

87
00:03:43,710 --> 00:03:45,200
‫Sono semplicemente funzioni middleware

88
00:03:45,200 --> 00:03:47,790
‫che si applicano solo a un determinato URL.

89
00:03:47,790 --> 00:03:50,010
‫Quindi un certo percorso, ok.

90
00:03:50,010 --> 00:03:52,980
‫Ma queste più semplici funzioni middleware che

91
00:03:52,980 --> 00:03:54,900
‫definiamo qui sopra,

92
00:03:54,900 --> 00:03:58,080
‫beh, si applicheranno a ogni singola richiesta.

93
00:03:58,080 --> 00:04:00,070
‫Almeno, se il gestore del percorso

94
00:04:00,070 --> 00:04:01,820
‫viene prima di questo middleware.

95
00:04:01,820 --> 00:04:04,250
‫Quindi lascia che ti mostri davvero qualcosa.

96
00:04:04,250 --> 00:04:06,610
‫E lo taglierò da qui e

97
00:04:06,610 --> 00:04:08,670
‫ora lo metterò qui dopo

98
00:04:08,670 --> 00:04:10,563
‫questo gestore di percorsi.

99
00:04:12,240 --> 00:04:14,910
‫Quindi cosa pensi che

100
00:04:14,910 --> 00:04:18,550
‫accadrà ora quando chiamerò questa rotta?

101
00:04:18,550 --> 00:04:20,900
‫Quindi vediamo cosa succede.

102
00:04:20,900 --> 00:04:24,040
‫Quindi questo percorso esatto, quindi quello che ti ho appena mostrato, fammi

103
00:04:24,040 --> 00:04:25,640
‫inviare la richiesta a quello.

104
00:04:26,520 --> 00:04:29,420
‫E ora torniamo indietro e ora non abbiamo

105
00:04:29,420 --> 00:04:31,000
‫il saluto dal middleware.

106
00:04:31,000 --> 00:04:32,460
‫Allora, perché è così?

107
00:04:32,460 --> 00:04:34,930
‫Bene, semplicemente perché questo middleware, quindi

108
00:04:34,930 --> 00:04:36,580
‫questo gestore di route

109
00:04:36,580 --> 00:04:40,200
‫qui, viene prima di questa funzione middleware che abbiamo qui.

110
00:04:40,200 --> 00:04:42,330
‫E questo gestore di route, che in

111
00:04:42,330 --> 00:04:46,570
‫questo caso riceve tutti i tour, termina effettivamente il ciclo di risposta alla richiesta.

112
00:04:46,570 --> 00:04:48,130
‫Quindi diamo un'occhiata a questo.

113
00:04:48,130 --> 00:04:49,763
‫Quindi abbiamo tutti i tour.

114
00:04:51,220 --> 00:04:52,600
‫Allora, dov'è?

115
00:04:52,600 --> 00:04:56,100
‫Sì, quindi ecco la funzione e inviando un risultato

116
00:04:56,100 --> 00:04:58,550
‫con res dot json, terminiamo

117
00:04:58,550 --> 00:05:01,090
‫effettivamente il ciclo di risposta alla richiesta.

118
00:05:01,090 --> 00:05:03,440
‫E quindi il prossimo middleware nello

119
00:05:03,440 --> 00:05:05,430
‫stack, che in questo caso

120
00:05:06,280 --> 00:05:09,700
‫è questo, quindi il nostro personalizzato non verrà chiamato.

121
00:05:09,700 --> 00:05:13,300
‫Di nuovo, perché il ciclo è già finito, ok.

122
00:05:13,300 --> 00:05:15,930
‫Quindi assicurati di capire che questo ordine

123
00:05:15,930 --> 00:05:18,200
‫conta davvero molto in espresso, ok.

124
00:05:18,200 --> 00:05:20,490
‫È fondamentale capire che è

125
00:05:20,490 --> 00:05:23,590
‫così che funzionano le app express, ok.

126
00:05:23,590 --> 00:05:25,760
‫Quindi, per testarlo, proviamo a

127
00:05:25,760 --> 00:05:27,730
‫vedere cosa succede quando

128
00:05:27,730 --> 00:05:30,190
‫facciamo una richiesta a questa rotta.

129
00:05:30,190 --> 00:05:33,173
‫Quindi, per ottenere il tour di aggiornamento o eliminare il tour.

130
00:05:34,900 --> 00:05:38,090
‫Quindi facciamo questo, inviamo la richiesta qui

131
00:05:38,090 --> 00:05:41,150
‫e torniamo indietro e ora abbiamo il

132
00:05:41,150 --> 00:05:42,740
‫saluto dal middleware.

133
00:05:42,740 --> 00:05:45,180
‫Quindi è proprio quello che ci aspettavamo, giusto?

134
00:05:45,180 --> 00:05:48,120
‫Questo perché, ovviamente, questo middleware qui ora è

135
00:05:48,120 --> 00:05:50,630
‫prima del gestore di route.

136
00:05:50,630 --> 00:05:53,390
‫E quindi è, ovviamente, parte dello stack del middleware

137
00:05:53,390 --> 00:05:57,050
‫che viene eseguito prima della fine del ciclo di risposta alla richiesta.

138
00:05:57,050 --> 00:05:58,673
‫Va bene, ha senso?

139
00:06:00,630 --> 00:06:03,250
‫Quindi, riprendiamolo e quindi di solito definiamo

140
00:06:03,250 --> 00:06:05,560
‫questo tipo di middleware globale qui

141
00:06:05,560 --> 00:06:08,183
‫prima di tutti i nostri gestori di rotte.

142
00:06:09,500 --> 00:06:11,830
‫Bene, quindi questa è una funzione

143
00:06:11,830 --> 00:06:15,500
‫middleware molto semplice che abbiamo appena definito per eseguire del codice.

144
00:06:15,500 --> 00:06:17,490
‫Ma in realtà ne facciamo un altro.

145
00:06:17,490 --> 00:06:18,920
‫E, naturalmente, possiamo

146
00:06:18,920 --> 00:06:21,800
‫avere tutte le funzioni middleware che vogliamo.

147
00:06:21,800 --> 00:06:23,170
‫E questa volta

148
00:06:23,170 --> 00:06:25,053
‫vogliamo effettivamente manipolare l'oggetto della richiesta.

149
00:06:27,040 --> 00:06:29,090
‫Quindi la firma qui è sempre

150
00:06:29,090 --> 00:06:31,343
‫la stessa, sempre richiesta, risposta e successiva.

151
00:06:32,890 --> 00:06:35,370
‫E ora manipoliamo effettivamente la richiesta.

152
00:06:35,370 --> 00:06:36,800
‫Tutto ciò che vogliamo

153
00:06:36,800 --> 00:06:39,990
‫fare in questo caso è aggiungere l'ora corrente alla richiesta.

154
00:06:39,990 --> 00:06:42,110
‫Quindi possiamo semplicemente definire

155
00:06:42,110 --> 00:06:44,963
‫una proprietà sull'oggetto richiesta chiamata request time.

156
00:06:47,480 --> 00:06:50,300
‫E poi impostalo su una nuova

157
00:06:50,300 --> 00:06:51,210
‫data,

158
00:06:51,210 --> 00:06:54,300
‫che sostanzialmente si traduce in questo momento.

159
00:06:54,300 --> 00:06:57,230
‫E poi possiamo usare una funzione data molto utile,

160
00:06:57,230 --> 00:06:59,670
‫che viene chiamata alla stringa ISO, che

161
00:06:59,670 --> 00:07:01,520
‫poi la convertirà in una bella

162
00:07:01,520 --> 00:07:03,330
‫stringa leggibile per noi.

163
00:07:03,330 --> 00:07:05,930
‫Quindi, supponiamo di avere un gestore di route

164
00:07:05,930 --> 00:07:07,860
‫che ha davvero bisogno delle

165
00:07:07,860 --> 00:07:10,310
‫informazioni su quando si verifica esattamente la richiesta.

166
00:07:10,310 --> 00:07:12,860
‫E quindi la soluzione molto semplice è

167
00:07:12,860 --> 00:07:16,470
‫semplicemente aggiungere qualcosa di simile a una richiesta utilizzando il middleware.

168
00:07:16,470 --> 00:07:17,520
‫Bene?

169
00:07:17,520 --> 00:07:18,960
‫Ora, non dimenticare,

170
00:07:18,960 --> 00:07:21,890
‫ovviamente, di chiamare il prossimo middleware nello stack, ok.

171
00:07:21,890 --> 00:07:26,830
‫Quindi in questo momento, abbiamo richiesta, tempo per tutte le richieste.

172
00:07:26,830 --> 00:07:29,800
‫Quindi ora possiamo usare alcuni gestori di route qui,

173
00:07:29,800 --> 00:07:32,850
‫ad esempio, (mumbles) per ottenere tutti i tour per

174
00:07:32,850 --> 00:07:35,163
‫registrarli semplicemente per noi sulla console.

175
00:07:36,640 --> 00:07:40,583
‫Quindi il registro dei punti della console e il suo tempo di richiesta effettivo.

176
00:07:42,130 --> 00:07:46,170
‫Ok, o potremmo anche inviare questo nella risposta.

177
00:07:46,170 --> 00:07:47,460
‫Fammi solo testare quello.

178
00:07:47,460 --> 00:07:49,590
‫E chiamiamo questo

179
00:07:52,670 --> 00:07:56,830
‫solo richiesto a e req dot request time.

180
00:07:56,830 --> 00:07:57,870
‫È lui.

181
00:07:57,870 --> 00:08:00,160
‫E quindi, sì, andiamo avanti e scopriamo questo.

182
00:08:00,160 --> 00:08:02,840
‫Quindi il nostro middleware è corretto, giusto?

183
00:08:02,840 --> 00:08:05,870
‫Sì, quindi chiamiamo dopo, quando abbiamo finito, e

184
00:08:05,870 --> 00:08:07,413
‫quindi proviamolo ora.

185
00:08:08,450 --> 00:08:10,273
‫Ricorda che è disponibile su tutti i tour.

186
00:08:11,310 --> 00:08:14,000
‫E quando torniamo indietro ora, o quando

187
00:08:14,000 --> 00:08:16,420
‫saliamo, beh, dovrebbe essere proprio qui.

188
00:08:16,420 --> 00:08:17,973
‫Allora, cosa c'è di sbagliato qui?

189
00:08:18,920 --> 00:08:20,060
‫Lo vedi

190
00:08:20,060 --> 00:08:22,430
‫qui sotto, in realtà abbiamo appena registrato

191
00:08:22,430 --> 00:08:27,230
‫una funzione e sì, ovviamente, non abbiamo effettivamente chiamato le due stringhe ISO.

192
00:08:27,230 --> 00:08:31,000
‫Quindi è un metodo che dobbiamo chiamarlo.

193
00:08:31,000 --> 00:08:33,930
‫Quindi salvalo, riprova.

194
00:08:33,930 --> 00:08:37,790
‫E ora abbiamo richiesto a e poi la data odierna.

195
00:08:37,790 --> 00:08:38,740
‫Così perfetta.

196
00:08:38,740 --> 00:08:40,860
‫Viene dal nostro middleware.

197
00:08:40,860 --> 00:08:44,980
‫Quindi semplicemente perché abbiamo aggiunto quella proprietà alla nostra richiesta.

198
00:08:44,980 --> 00:08:46,250
‫Grande.

199
00:08:46,250 --> 00:08:49,280
‫Quindi spero che tu abbia fatto un grande passo

200
00:08:49,280 --> 00:08:52,730
‫avanti per capire davvero come funziona l'app Node, come funziona

201
00:08:52,730 --> 00:08:53,810
‫il middleware,

202
00:08:53,810 --> 00:08:56,370
‫come funziona l'intero ciclo di risposta alla

203
00:08:56,370 --> 00:08:58,300
‫richiesta, perché questo farà davvero la

204
00:08:58,300 --> 00:09:00,453
‫differenza quando scrivi le proprie applicazioni.

