﻿1
00:00:01,437 --> 00:00:03,800
‫-: (Uomo) Quindi in questa lezione

2
00:00:03,800 --> 00:00:07,093
‫imparerai come concatenare più funzioni middleware per lo stesso percorso.

3
00:00:08,490 --> 00:00:11,500
‫Quindi fino a questo punto, ogni volta

4
00:00:11,500 --> 00:00:15,610
‫che volevamo definire un middleware, passavamo solo una funzione middleware.

5
00:00:15,610 --> 00:00:19,510
‫Quindi, ad esempio, qui, per gestire questa richiesta di post,

6
00:00:19,510 --> 00:00:22,700
‫abbiamo passato solo questa funzione middleware che è

7
00:00:22,700 --> 00:00:24,930
‫il nostro gestore createTour.

8
00:00:24,930 --> 00:00:27,400
‫Va bene? E quindi questa è

9
00:00:27,400 --> 00:00:30,880
‫l'unica funzione che verrà chiamata ogni volta che riceviamo una richiesta di posta.

10
00:00:30,880 --> 00:00:33,840
‫Destra? Ma ora diciamo che

11
00:00:33,840 --> 00:00:35,940
‫vogliamo effettivamente eseguire più funzioni middleware.

12
00:00:35,940 --> 00:00:39,280
‫Ora potresti chiedere "Perché dovremmo volerlo fare? ".

13
00:00:39,280 --> 00:00:42,713
‫Bene, potremmo, ad esempio, eseguire un middleware prima di createTour

14
00:00:42,713 --> 00:00:45,760
‫qui per controllare effettivamente i dati che stanno

15
00:00:45,760 --> 00:00:47,060
‫arrivando nel corpo.

16
00:00:47,060 --> 00:00:50,490
‫Destra? Quindi un po' simile a quello che avevamo prima.

17
00:00:50,490 --> 00:00:53,670
‫Quindi abbiamo già fatto questo middleware di verifica dell'ID

18
00:00:53,670 --> 00:00:57,240
‫per verificare se l'ID è effettivamente valido e farlo al di

19
00:00:57,240 --> 00:00:59,430
‫fuori dei gestori di percorso effettivi

20
00:00:59,430 --> 00:01:03,140
‫in modo che si preoccupino solo di ottenere, aggiornare o eliminare

21
00:01:03,140 --> 00:01:04,080
‫un tour.

22
00:01:04,080 --> 00:01:07,340
‫Destra? E quindi qui, in questo esempio specifico

23
00:01:07,340 --> 00:01:09,130
‫con post, potremmo voler fare la stessa cosa.

24
00:01:09,130 --> 00:01:12,900
‫Quindi, come ho detto, potremmo voler controllare se richiesta. buddy contiene effettivamente

25
00:01:12,900 --> 00:01:16,080
‫i dati che vogliamo per il tour.

26
00:01:16,080 --> 00:01:18,440
‫Va bene? E quindi facciamolo.

27
00:01:18,440 --> 00:01:22,020
‫E in realtà, voglio che prima lo faccia da solo.

28
00:01:22,020 --> 00:01:25,240
‫Quindi questa è una specie di sfida che voglio che tu

29
00:01:25,240 --> 00:01:27,670
‫completi per usare i concetti di cui abbiamo

30
00:01:27,670 --> 00:01:30,450
‫parlato così tante volte a questo punto e creare la

31
00:01:30,450 --> 00:01:31,450
‫tua funzione middleware.

32
00:01:32,470 --> 00:01:34,950
‫Quindi mi permetta di scriverlo qui come commento.

33
00:01:34,950 --> 00:01:36,160
‫Quindi voglio

34
00:01:39,370 --> 00:01:43,060
‫che crei una funzione middleware checkBody e lì

35
00:01:43,060 --> 00:01:44,660
‫voglio che controlli

36
00:01:47,620 --> 00:01:52,620
‫se il corpo contiene la proprietà name per il nome del

37
00:01:52,670 --> 00:01:54,770
‫tour e la proprietà price.

38
00:01:54,770 --> 00:01:58,020
‫Va bene? E se no, voglio che tu mi rimandi

39
00:01:58,020 --> 00:01:59,590
‫un codice di stato di quattrocento.

40
00:01:59,590 --> 00:02:04,000
‫In caso contrario, rispedisci quattrocento, che sta per

41
00:02:04,000 --> 00:02:05,630
‫cattiva richiesta.

42
00:02:05,630 --> 00:02:09,190
‫Quindi, in pratica, una richiesta non valida da parte del cliente,

43
00:02:09,190 --> 00:02:13,060
‫che in questo caso sta cercando di creare un nuovo tour senza nome

44
00:02:13,060 --> 00:02:15,090
‫e senza una proprietà di prezzo.

45
00:02:15,090 --> 00:02:16,693
‫Va bene! Ed è proprio così.

46
00:02:19,580 --> 00:02:20,640
‫E (ride) in realtà no.

47
00:02:20,640 --> 00:02:25,640
‫Quindi voglio anche che tu lo aggiunga allo stack del gestore di post.

48
00:02:28,600 --> 00:02:29,900
‫Fondamentalmente. Va bene?

49
00:02:29,900 --> 00:02:31,700
‫Quindi voglio che tu lo aggiunga qui.

50
00:02:31,700 --> 00:02:33,430
‫E in realtà ti dirò come

51
00:02:33,430 --> 00:02:35,730
‫farlo perché non l'abbiamo fatto a questo punto.

52
00:02:35,730 --> 00:02:40,690
‫Quindi è molto facile. Diciamo che la nostra funzione si chiama middleware

53
00:02:40,690 --> 00:02:43,590
‫e quindi quello che devi fare è semplicemente aggiungere

54
00:02:43,590 --> 00:02:46,800
‫quella funzione qui prima del gestore createTour che alla fine

55
00:02:46,800 --> 00:02:49,180
‫creerà il tour. Va bene?

56
00:02:49,180 --> 00:02:53,630
‫Quindi in questo modo quando abbiamo una richiesta di post

57
00:02:53,630 --> 00:02:57,334
‫per questo percorso, eseguirà prima questo middleware e

58
00:02:57,334 --> 00:02:59,280
‫solo dopo il createTour.

59
00:02:59,280 --> 00:03:02,740
‫Va bene? Ecco come concateniamo due diversi middleware.

60
00:03:02,740 --> 00:03:06,370
‫Ma ora voglio che tu vada avanti e crei questo

61
00:03:06,370 --> 00:03:08,290
‫middleware chiamato in realtà checkBody.

62
00:03:08,290 --> 00:03:11,423
‫Quindi metti in pausa il video ora e prova a farlo da solo.

63
00:03:15,220 --> 00:03:18,920
‫Va bene! Quindi spero che tu abbia avuto successo

64
00:03:18,920 --> 00:03:21,250
‫nel farlo e poi l'hai testato e che tutto funzioni.

65
00:03:21,250 --> 00:03:24,323
‫Quindi ora lasciami andare avanti e implementarlo a modo mio.

66
00:03:25,800 --> 00:03:28,210
‫Quindi abbiamo questo errore qui, ma non preoccuparti.

67
00:03:28,210 --> 00:03:31,083
‫È a causa di questo middleware che non è definito.

68
00:03:33,120 --> 00:03:36,553
‫E quindi lascia che lo faccia qui subito dopo il middleware checkID.

69
00:03:38,440 --> 00:03:40,297
‫Quindi esportazioni. checkBody.

70
00:03:44,760 --> 00:03:47,503
‫Dobbiamo richiedere una risposta e poi.

71
00:03:48,510 --> 00:03:51,560
‫E quindi in realtà è abbastanza semplice.

72
00:03:51,560 --> 00:03:56,030
‫Quindi, se non c'è richiesta. corpo. nome, e penso

73
00:03:57,050 --> 00:03:59,080
‫che sia il nome, ma

74
00:03:59,080 --> 00:04:01,070
‫andiamo avanti e controlliamolo velocemente.

75
00:04:01,070 --> 00:04:03,570
‫Quindi è qui che il tour è semplice.

76
00:04:03,570 --> 00:04:05,340
‫Sì, e in effetti si chiama "nome"

77
00:04:05,340 --> 00:04:06,790
‫e l'altro è "prezzo".

78
00:04:09,810 --> 00:04:13,420
‫Quindi, se non è presente il nome del corpo della richiesta

79
00:04:13,420 --> 00:04:17,560
‫o il corpo della richiesta. prezzo bene, in

80
00:04:20,440 --> 00:04:24,460
‫questo caso, come prima, torneremo da questa

81
00:04:24,460 --> 00:04:27,163
‫funzione e invieremo una risposta.

82
00:04:28,500 --> 00:04:33,500
‫Quindi lo stato qui è ricorda: quattrocento aggiungi quindi alcuni

83
00:04:33,610 --> 00:04:37,283
‫"json" in cui lo stato è fail.

84
00:04:38,520 --> 00:04:41,560
‫Quindi è sempre quando abbiamo un codice quattrocento.

85
00:04:41,560 --> 00:04:42,750
‫Aggiungi quindi il

86
00:04:45,097 --> 00:04:46,180
‫messaggio

87
00:04:47,910 --> 00:04:49,400
‫"Nome o prezzo mancante".

88
00:04:49,400 --> 00:04:53,240
‫Va bene? Quindi prezzo e nome devono essere presenti allo stesso tempo.

89
00:04:53,240 --> 00:04:57,500
‫Quindi, se il prezzo non è presente o il nome non è

90
00:04:57,500 --> 00:04:59,993
‫presente, inviamo già questo messaggio di errore.

91
00:05:00,830 --> 00:05:04,500
‫Va bene? Ma se tutto è corretto, allora

92
00:05:04,500 --> 00:05:06,283
‫vogliamo passare al prossimo middleware.

93
00:05:07,864 --> 00:05:09,110
‫E quindi è quello che diciamo qui.

94
00:05:09,110 --> 00:05:12,650
‫E poi il prossimo middleware sarà ovviamente createTour.

95
00:05:14,833 --> 00:05:15,666
‫Quindi questo.

96
00:05:17,260 --> 00:05:20,750
‫Quindi, andiamo avanti e poi aggiungiamolo qui.

97
00:05:20,750 --> 00:05:22,150
‫Quindi tourController. checkBody.

98
00:05:25,090 --> 00:05:29,180
‫Bene, ora l'errore è sparito e dovremmo essere in

99
00:05:29,180 --> 00:05:33,562
‫grado di testarlo ora. Quindi chiudiamo quelli

100
00:05:33,562 --> 00:05:38,000
‫che non ci interessano e creiamo un nuovo tour.

101
00:05:38,000 --> 00:05:40,890
‫Quindi in questo momento abbiamo il nostro corpo con il nome, la

102
00:05:40,890 --> 00:05:43,080
‫durata e la difficoltà, ma non c'è prezzo.

103
00:05:43,080 --> 00:05:46,160
‫Quindi ora dovremmo ottenere il nostro errore. Destra?

104
00:05:46,160 --> 00:05:50,150
‫Quindi testiamolo. Spedire. E infatti, abbiamo

105
00:05:50,150 --> 00:05:53,630
‫"Nome o prezzo mancante" con la nostra quattrocento cattiva richiesta.

106
00:05:53,630 --> 00:05:57,090
‫Va bene? E quindi analizziamo di nuovo cosa è successo qui.

107
00:05:57,090 --> 00:06:00,830
‫Quindi la nostra richiesta ha raggiunto questa rotta qui

108
00:06:00,830 --> 00:06:05,360
‫ed era una richiesta postale. Quindi, esegue questa

109
00:06:05,360 --> 00:06:09,980
‫funzione middleware e da questa funzione inviamo questa risposta

110
00:06:10,830 --> 00:06:15,380
‫dicendo che, beh, manca il nome o il prezzo.

111
00:06:15,380 --> 00:06:17,730
‫Va bene? Ma se ora aggiungi il prezzo... quindi non

112
00:06:21,530 --> 00:06:23,730
‫importa quale prezzo, invialo, beh, allora

113
00:06:23,730 --> 00:06:26,940
‫tutto funziona bene e otteniamo un 201 creato.

114
00:06:26,940 --> 00:06:29,083
‫Allora cosa è successo questa volta? Bene, ha verificato il corpo e questa

115
00:06:30,480 --> 00:06:34,380
‫condizione non era vera e

116
00:06:34,380 --> 00:06:37,650
‫quindi ha chiamato il prossimo middleware nello stack che è createTour.

117
00:06:37,650 --> 00:06:41,420
‫Quindi ha creato un tour e ha inviato il risultato e

118
00:06:41,420 --> 00:06:44,540
‫in questo modo ha terminato il ciclo di richiesta-risposta.

119
00:06:44,540 --> 00:06:47,790
‫Destra? Quindi spero che sia stata una, uh, una bella

120
00:06:47,790 --> 00:06:52,790
‫piccola sfida e useremo questo tipo

121
00:06:52,930 --> 00:06:56,340
‫di logica qui tutto il tempo in cui concateniamo più

122
00:06:56,340 --> 00:06:59,560
‫tipi di gestori qui per la stessa via. Quindi ad esempio qui potremmo controllare se un certo utente è

123
00:06:59,560 --> 00:07:02,760
‫loggato o se ha

124
00:07:02,760 --> 00:07:06,540
‫i privilegi, quindi i diritti di accesso, per scrivere anche un nuovo tour.

125
00:07:06,540 --> 00:07:10,320
‫O davvero tutti i tipi di cose che vogliamo che accadano

126
00:07:10,320 --> 00:07:13,300
‫prima che il tour sia effettivamente creato.

127
00:07:13,300 --> 00:07:15,940
‫Va bene? E ancora una volta lo facciamo perché vogliamo prendere tutta

128
00:07:15,940 --> 00:07:19,100
‫la logica che non riguarda

129
00:07:19,100 --> 00:07:22,360
‫realmente la creazione della nuova risorsa al di fuori di quel gestore. In modo che quel gestore sia realmente

130
00:07:22,360 --> 00:07:25,860
‫interessato solo al

131
00:07:25,860 --> 00:07:27,890
‫lavoro che dovrebbe fare.

