﻿1
00:00:01,380 --> 00:00:03,290
‫Tutor: In questa lezione, le cose

2
00:00:03,290 --> 00:00:05,450
‫inizieranno a diventare un po' più avanzate.

3
00:00:05,450 --> 00:00:08,370
‫E questo perché ora creeremo più router e

4
00:00:08,370 --> 00:00:10,860
‫utilizzeremo un processo chiamato montaggio.

5
00:00:10,860 --> 00:00:12,713
‫Quindi vediamo come funziona.

6
00:00:14,150 --> 00:00:17,090
‫Ora, prima di fare qualsiasi cosa, teniamo

7
00:00:17,090 --> 00:00:20,350
‫presente che l'obiettivo finale sarà quello di separare tutto il

8
00:00:20,350 --> 00:00:23,510
‫codice che abbiamo in questo file in più file.

9
00:00:23,510 --> 00:00:26,220
‫Quindi quello che voglio è avere un

10
00:00:26,220 --> 00:00:29,270
‫file che contenga solo tutti questi percorsi, quindi voglio

11
00:00:29,270 --> 00:00:31,200
‫avere un altro file,

12
00:00:31,200 --> 00:00:33,713
‫che abbia i percorsi per gli utenti.

13
00:00:34,550 --> 00:00:38,370
‫Vorrei anche avere un file che contenga i gestori solo

14
00:00:38,370 --> 00:00:41,690
‫per gli utenti e poi anche un

15
00:00:41,690 --> 00:00:45,680
‫file che conterrà tutti i gestori per i tour, ok?

16
00:00:45,680 --> 00:00:47,460
‫Ed è proprio quello che

17
00:00:47,460 --> 00:00:48,900
‫faremo nella prossima lezione.

18
00:00:48,900 --> 00:00:51,200
‫Ma per poterlo fare, ora

19
00:00:51,200 --> 00:00:54,030
‫dobbiamo creare un router separato per

20
00:00:54,030 --> 00:00:56,033
‫ciascuna delle nostre risorse.

21
00:00:56,940 --> 00:01:01,320
‫Quindi, torniamo alle nostre rotte qui e quindi in questo momento,

22
00:01:01,320 --> 00:01:05,890
‫possiamo dire che tutte le nostre rotte, quindi queste quattro rotte qui,

23
00:01:05,890 --> 00:01:07,730
‫possiamo dire che sono

24
00:01:07,730 --> 00:01:09,650
‫tutte sullo stesso router, ok?

25
00:01:09,650 --> 00:01:12,800
‫E il router, è questo oggetto app.

26
00:01:12,800 --> 00:01:15,090
‫Ma se vogliamo separare queste rotte

27
00:01:15,090 --> 00:01:17,810
‫in file diversi, quindi di nuovo, un

28
00:01:17,810 --> 00:01:19,820
‫file per queste due

29
00:01:19,820 --> 00:01:22,440
‫rotte e un file per queste due

30
00:01:22,440 --> 00:01:25,540
‫rotte, allora la cosa migliore da fare è creare

31
00:01:25,540 --> 00:01:28,140
‫un router per ciascuna delle risorse, ok?

32
00:01:28,140 --> 00:01:30,720
‫E così, ecco come faremo.

33
00:01:30,720 --> 00:01:33,390
‫In realtà non è così complicato, ma

34
00:01:33,390 --> 00:01:34,890
‫dovrai concentrarti su

35
00:01:34,890 --> 00:01:37,283
‫un paio di concetti, ok?

36
00:01:38,420 --> 00:01:40,070
‫Quindi, iniziamo dicendo

37
00:01:40,070 --> 00:01:45,070
‫che const tourRouter è uguale a express. router.

38
00:01:51,110 --> 00:01:52,560
‫Ok, proprio così,

39
00:01:52,560 --> 00:01:57,120
‫creiamo un nuovo router e lo salviamo in questa variabile.

40
00:01:57,120 --> 00:01:59,590
‫Bene, quindi ora usiamo quel router

41
00:01:59,590 --> 00:02:01,480
‫per questi due percorsi.

42
00:02:01,480 --> 00:02:03,653
‫Quindi qui lo usiamo al posto di app.

43
00:02:04,860 --> 00:02:07,550
‫Bene, ora abbiamo due router e poi route

44
00:02:07,550 --> 00:02:09,710
‫e poi, ovviamente, get e post

45
00:02:09,710 --> 00:02:11,420
‫route su quel router.

46
00:02:11,420 --> 00:02:14,080
‫Ora, come colleghiamo effettivamente questo nuovo router

47
00:02:14,080 --> 00:02:15,630
‫alla nostra applicazione?

48
00:02:15,630 --> 00:02:19,370
‫Bene, lo useremo come middleware, va bene?

49
00:02:19,370 --> 00:02:23,770
‫E questo è perché, questo nuovo tool router modulare qui, è in

50
00:02:23,770 --> 00:02:26,480
‫realtà un vero middleware, va bene?

51
00:02:26,480 --> 00:02:28,330
‫E quindi possiamo

52
00:02:29,980 --> 00:02:34,980
‫dire, (digitazione da tastiera), app. use, e poi il percorso, ma conserviamolo per dopo.

53
00:02:36,760 --> 00:02:41,760
‫Quindi possiamo usare il tourRouter sulla nostra applicazione e dove

54
00:02:42,020 --> 00:02:44,647
‫vogliamo usare il tourRouter?

55
00:02:44,647 --> 00:02:46,650
‫Bene, vogliamo

56
00:02:46,650 --> 00:02:51,650
‫usarlo su /api/versione uno/tours, ok?

57
00:02:53,800 --> 00:02:58,030
‫Quindi, di nuovo, questo tourRouter qui è un vero middleware.

58
00:02:58,030 --> 00:03:01,850
‫E vogliamo usare quel middleware per questo percorso specifico.

59
00:03:01,850 --> 00:03:04,240
‫Ok, quindi usiamo app. usa e

60
00:03:04,240 --> 00:03:07,883
‫specifica la funzione middleware, che è questo

61
00:03:07,883 --> 00:03:11,540
‫router, quindi specifichiamo il percorso quindi l'URL, per

62
00:03:11,540 --> 00:03:15,200
‫il quale vogliamo effettivamente usare quel middleware, ok?

63
00:03:15,200 --> 00:03:16,640
‫E così,

64
00:03:16,640 --> 00:03:20,700
‫proprio così, abbiamo creato fondamentalmente un'applicazione secondaria, ok?

65
00:03:20,700 --> 00:03:22,270
‫Ora, c'è solo

66
00:03:22,270 --> 00:03:24,060
‫una cosa che dobbiamo davvero

67
00:03:24,060 --> 00:03:27,110
‫cambiare qui, che sono questi percorsi qui, ok?

68
00:03:27,110 --> 00:03:29,830
‫Quindi fammi cambiare questo qui, e poi

69
00:03:29,830 --> 00:03:31,830
‫spieghi perché deve essere così.

70
00:03:31,830 --> 00:03:34,267
‫Quindi qui vogliamo solo il

71
00:03:34,267 --> 00:03:37,600
‫percorso e qui dentro vogliamo solo l'ID, ok?

72
00:03:37,600 --> 00:03:39,450
‫Ora, perché è così?

73
00:03:39,450 --> 00:03:42,540
‫Bene, è perché questo middleware tourRouter,

74
00:03:42,540 --> 00:03:46,200
‫comunque, funziona solo su questo percorso qui, ok?

75
00:03:46,200 --> 00:03:48,400
‫Quindi, una volta che siamo

76
00:03:48,400 --> 00:03:50,700
‫nel router, siamo già su questa rotta.

77
00:03:50,700 --> 00:03:54,150
‫Quindi nel nostro tourRoute, e quindi questo primo percorso

78
00:03:54,150 --> 00:03:57,370
‫che dovevamo fare prima, vogliamo eseguirlo solo come

79
00:03:57,370 --> 00:04:00,090
‫api/versione uno/tours e quindi questo

80
00:04:00,090 --> 00:04:03,740
‫è ciò che significa questo percorso qui ora, ok?

81
00:04:03,740 --> 00:04:07,720
‫Quindi è fondamentalmente il percorso di questo URL, ok?

82
00:04:07,720 --> 00:04:10,750
‫Quindi questa piccola mini applicazione va bene?

83
00:04:10,750 --> 00:04:14,260
‫Quindi, in realtà, quando creiamo un sistema di

84
00:04:14,260 --> 00:04:18,650
‫router come questo, diciamo che creiamo una piccola app secondaria

85
00:04:18,650 --> 00:04:21,793
‫per ciascuna di queste risorse, ok?

86
00:04:22,860 --> 00:04:26,410
‫Quindi questo è il percorso o la

87
00:04:26,410 --> 00:04:30,390
‫mini applicazione, che è di nuovo in /tours, ok?

88
00:04:30,390 --> 00:04:34,150
‫E poi il secondo percorso, è in /id, giusto?

89
00:04:34,150 --> 00:04:35,680
‫E questo perché,

90
00:04:35,680 --> 00:04:39,303
‫prima, era al tour /id, quindi era tutto questo.

91
00:04:40,190 --> 00:04:44,330
‫Quindi così, ma ora, questo URL qui

92
00:04:44,330 --> 00:04:49,330
‫è già nel nostro tipo di percorso genitore quassù, giusto?

93
00:04:49,400 --> 00:04:51,980
‫Quindi diciamo che abbiamo

94
00:04:51,980 --> 00:04:56,690
‫una richiesta in arrivo ora per /api/version one /tours/version id.

95
00:04:56,690 --> 00:04:59,460
‫Quindi la richiesta va nello stack del middleware

96
00:04:59,460 --> 00:05:02,190
‫e quando raggiunge questa riga di

97
00:05:02,190 --> 00:05:05,060
‫codice qui, corrisponderà a questo URL qui, giusto?

98
00:05:05,060 --> 00:05:07,380
‫Quindi corrisponderà a questo percorso e

99
00:05:07,380 --> 00:05:10,150
‫quindi verranno eseguite due funzioni middleware del router.

100
00:05:10,150 --> 00:05:14,310
‫Quindi o due router sono questa sottoapplicazione che abbiamo creato, che

101
00:05:14,310 --> 00:05:17,740
‫a sua volta ha i suoi percorsi, ok?

102
00:05:17,740 --> 00:05:20,570
‫E se la richiesta era per /id, beh,

103
00:05:20,570 --> 00:05:22,480
‫allora sarà all'interno della

104
00:05:22,480 --> 00:05:25,220
‫nostra mini app, seguirà questo percorso qui, giusto?

105
00:05:25,220 --> 00:05:26,250
‫E infine,

106
00:05:26,250 --> 00:05:29,030
‫ovviamente, eseguirà uno di questi handle qui,

107
00:05:29,030 --> 00:05:31,190
‫a seconda del metodo utilizzato.

108
00:05:31,190 --> 00:05:34,010
‫Quindi spero che abbia avuto senso.

109
00:05:34,010 --> 00:05:36,580
‫E quindi ora andiamo avanti e facciamo

110
00:05:36,580 --> 00:05:39,363
‫lo stesso per tutti gli utenti, va bene?

111
00:05:40,220 --> 00:05:44,089
‫Quindi, andrò avanti e creerò un altro router qui, (digitando

112
00:05:44,089 --> 00:05:47,370
‫da tastiera) chiamato userRouter, e poi, proprio come

113
00:05:49,727 --> 00:05:52,520
‫prima, è espresso. Il

114
00:05:55,970 --> 00:05:58,823
‫router non è così, sì.

115
00:06:00,160 --> 00:06:02,333
‫Ok, quindi usa un router

116
00:06:05,810 --> 00:06:08,970
‫e poi dobbiamo fare lo stesso processo di qui.

117
00:06:08,970 --> 00:06:12,980
‫E a proposito, questo si chiama montaggio del router, ok?

118
00:06:12,980 --> 00:06:17,980
‫Quindi montare un nuovo router su un percorso, in pratica, ok?

119
00:06:19,770 --> 00:06:23,970
‫Quindi ora abbiamo utenti e qui utente.

120
00:06:26,100 --> 00:06:28,870
‫E in effetti, montare

121
00:06:28,870 --> 00:06:32,330
‫i router, deve venire dopo tutte queste

122
00:06:32,330 --> 00:06:37,330
‫definizioni o almeno dopo che abbiamo dichiarato una variabile, giusto?

123
00:06:39,660 --> 00:06:41,190
‫Quindi non possiamo usare

124
00:06:41,190 --> 00:06:43,560
‫i router prima di averli effettivamente dichiarati.

125
00:06:43,560 --> 00:06:46,630
‫Ok, ora tutto ciò che dobbiamo fare

126
00:06:46,630 --> 00:06:50,223
‫è andare avanti e cambiare anche le rotte qui.

127
00:06:51,850 --> 00:06:55,160
‫E quindi, proprio come prima, se ora

128
00:06:55,160 --> 00:06:59,740
‫c'è una richiesta per /api/version one/users/id, la richiesta entrerà nello

129
00:06:59,740 --> 00:07:02,350
‫stack del middleware e quando

130
00:07:02,350 --> 00:07:04,680
‫raggiungerà questo middleware qui,

131
00:07:04,680 --> 00:07:06,560
‫eseguirà il router

132
00:07:06,560 --> 00:07:10,250
‫dell'utente, perché questo percorso qui è abbinato, ok?

133
00:07:10,250 --> 00:07:12,320
‫E quindi entra nel

134
00:07:12,320 --> 00:07:14,220
‫router dell'utente e

135
00:07:14,220 --> 00:07:18,960
‫di nuovo, proprio come prima, questo errore è fondamentalmente il

136
00:07:18,960 --> 00:07:23,860
‫percorso nella nostra sottoapplicazione, e questo qui è l'intero URL/id, ok?

137
00:07:23,860 --> 00:07:25,550
‫Ha senso?

138
00:07:25,550 --> 00:07:26,710
‫Quindi, prima

139
00:07:26,710 --> 00:07:29,723
‫di andare avanti, proviamo effettivamente se funziona ancora.

140
00:07:30,640 --> 00:07:35,210
‫Quindi, prendiamo tutti i tour qui e infatti, lo fa.

141
00:07:35,210 --> 00:07:40,000
‫Quindi tutto funziona ancora allo stesso modo con gli utenti e

142
00:07:40,000 --> 00:07:42,380
‫anche questo funziona ancora.

143
00:07:42,380 --> 00:07:45,410
‫Quindi abbiamo fatto tutte queste modifiche e decodificato le

144
00:07:45,410 --> 00:07:49,350
‫opere, il che significa che i nostri due nuovi router sono montati correttamente.

145
00:07:49,350 --> 00:07:53,230
‫Bene, e con ciò, siamo pronti per separare o

146
00:07:53,230 --> 00:07:56,250
‫diversi router ora in file diversi.

147
00:07:56,250 --> 00:07:58,993
‫E questo lo faremo bene nella prossima lezione.

