﻿1
00:00:01,090 --> 00:00:03,130
‫Istruttore: Quindi nell'ultima lezione abbiamo

2
00:00:03,130 --> 00:00:06,010
‫appreso degli schemi e dei modelli di Mongoose,

3
00:00:06,010 --> 00:00:08,260
‫quindi ora implementiamo uno schema e

4
00:00:08,260 --> 00:00:11,173
‫un modello molto semplici per la nostra applicazione.

5
00:00:12,920 --> 00:00:14,990
‫E per ora, facciamolo proprio qui

6
00:00:14,990 --> 00:00:17,330
‫nel nostro server. js file.

7
00:00:17,330 --> 00:00:19,020
‫Più tardi, ovviamente,

8
00:00:19,020 --> 00:00:21,370
‫lo sposteremo in un altro file.

9
00:00:21,370 --> 00:00:24,560
‫Quindi, Mongoose è tutto incentrato sui modelli e

10
00:00:24,560 --> 00:00:26,960
‫un modello è come un

11
00:00:26,960 --> 00:00:29,420
‫progetto che usiamo per creare documenti.

12
00:00:29,420 --> 00:00:32,290
‫Quindi è un po' come le classi

13
00:00:32,290 --> 00:00:35,080
‫in JavaScript, che usiamo anche

14
00:00:35,080 --> 00:00:38,590
‫come progetti per creare oggetti da esse, giusto?

15
00:00:38,590 --> 00:00:41,500
‫Quindi, di nuovo, creiamo un modello in Mongoose

16
00:00:41,500 --> 00:00:44,000
‫per creare documenti che lo utilizzano

17
00:00:44,000 --> 00:00:47,670
‫e anche per interrogare l'aggiornamento e l'eliminazione di questi documenti.

18
00:00:47,670 --> 00:00:50,840
‫Quindi, in pratica, per eseguire ciascuna delle operazioni CRUD,

19
00:00:50,840 --> 00:00:53,420
‫quindi creare, leggere, aggiornare ed eliminare,

20
00:00:53,420 --> 00:00:56,520
‫abbiamo bisogno di un modello Mongoose e, per creare

21
00:00:56,520 --> 00:00:59,520
‫un modello, abbiamo effettivamente bisogno di uno schema.

22
00:00:59,520 --> 00:01:01,700
‫Quindi, in realtà creiamo modelli dallo

23
00:01:01,700 --> 00:01:03,820
‫schema Mongoose proprio come abbiamo

24
00:01:03,820 --> 00:01:06,490
‫appreso nell'ultimo video e usiamo lo schema per

25
00:01:06,490 --> 00:01:09,910
‫descrivere i nostri dati, per impostare i valori predefiniti, per

26
00:01:09,910 --> 00:01:13,660
‫convalidare i dati e tutti i tipi di cose del genere.

27
00:01:13,660 --> 00:01:15,620
‫Quindi, proprio come vedrai

28
00:01:15,620 --> 00:01:17,930
‫adesso, perché ora inizieremo a creare

29
00:01:17,930 --> 00:01:20,990
‫uno schema molto semplice per i nostri tour.

30
00:01:20,990 --> 00:01:24,980
‫Quindi, diciamo che tourSchema è una

31
00:01:28,300 --> 00:01:32,363
‫nuova mangusta. Schema.

32
00:01:33,852 --> 00:01:36,752
‫Aggiungi che qui passiamo effettivamente il nostro schema come oggetto.

33
00:01:37,590 --> 00:01:40,990
‫Va bene, possiamo anche passare alcune opzioni allo schema, ma

34
00:01:40,990 --> 00:01:44,090
‫lo lascio a un video futuro in cui

35
00:01:44,090 --> 00:01:46,640
‫abbiamo effettivamente bisogno di quella funzione.

36
00:01:46,640 --> 00:01:49,020
‫Quindi, ricordi i documenti del tour che

37
00:01:49,020 --> 00:01:51,090
‫abbiamo creato nell'ultima sezione quando

38
00:01:51,090 --> 00:01:53,190
‫abbiamo iniziato a esplorare Mongoose DB?

39
00:01:53,190 --> 00:01:54,760
‫Quindi abbiamo sempre

40
00:01:54,760 --> 00:01:57,100
‫dato loro un nome, una valutazione

41
00:01:57,100 --> 00:01:59,226
‫e un prezzo, giusto, quindi

42
00:01:59,226 --> 00:02:02,010
‫ora replichiamo questo qui dicendo nome, e poi

43
00:02:02,010 --> 00:02:04,717
‫descrivendo che tipo di dati vogliamo dopo

44
00:02:04,717 --> 00:02:07,500
‫il nome, e vogliamo che sia una stringa.

45
00:02:07,500 --> 00:02:09,770
‫Quindi Mongoose utilizza effettivamente i

46
00:02:09,770 --> 00:02:13,280
‫tipi di dati JavaScript nativi, e quindi qui possiamo

47
00:02:13,280 --> 00:02:16,980
‫dire stringa, o dopo la valutazione possiamo dire che vogliamo

48
00:02:19,394 --> 00:02:22,163
‫un numero e lo stesso del prezzo.

49
00:02:23,340 --> 00:02:25,890
‫Dovrebbe essere anche un numero, no?

50
00:02:25,890 --> 00:02:30,320
‫Quindi questo è il modo più elementare di descrivere i nostri dati.

51
00:02:30,320 --> 00:02:33,130
‫Quindi abbiamo un nome, una valutazione e un prezzo

52
00:02:33,130 --> 00:02:34,913
‫e abbiamo specificato il tipo

53
00:02:34,913 --> 00:02:38,150
‫di dati che ci aspettiamo per ciascuno di questi campi.

54
00:02:38,150 --> 00:02:40,340
‫Quindi, di nuovo, questo è

55
00:02:40,340 --> 00:02:43,100
‫il modo più elementare di descrivere uno schema, ma

56
00:02:43,100 --> 00:02:45,650
‫possiamo fare un ulteriore passo avanti definendo qualcosa

57
00:02:45,650 --> 00:02:48,360
‫chiamato opzioni del tipo di schema per ogni

58
00:02:48,360 --> 00:02:50,600
‫campo, o solo per un campo specifico.

59
00:02:50,600 --> 00:02:52,640
‫Quindi iniziamo qui con il

60
00:02:52,640 --> 00:02:54,270
‫nome, e invece

61
00:02:54,270 --> 00:02:58,490
‫di specificarlo semplicemente come una stringa, passiamo effettivamente un altro oggetto.

62
00:02:58,490 --> 00:03:01,340
‫E quindi ora diciamo che vogliamo che il tipo

63
00:03:01,340 --> 00:03:02,850
‫sia stringa, ma ora

64
00:03:02,850 --> 00:03:05,640
‫possiamo definire un paio di opzioni in più, ok?

65
00:03:05,640 --> 00:03:10,640
‫Ad esempio, possiamo dire che questo campo è obbligatorio, quindi

66
00:03:12,070 --> 00:03:13,060
‫impostiamo

67
00:03:13,060 --> 00:03:17,110
‫semplicemente la proprietà richiesta qui su true, ok?

68
00:03:17,110 --> 00:03:20,970
‫Quindi, di nuovo, questo oggetto qui sono le opzioni del tipo di schema

69
00:03:20,970 --> 00:03:23,320
‫e possono essere diverse per tipi diversi, ad

70
00:03:23,320 --> 00:03:25,640
‫esempio il tipo di numero ha

71
00:03:25,640 --> 00:03:28,250
‫alcune opzioni di schema diverse rispetto alla stringa

72
00:03:28,250 --> 00:03:30,770
‫qui, ma molte di esse sono anche simili.

73
00:03:30,770 --> 00:03:32,630
‫Quindi, ad esempio, il richiesto,

74
00:03:32,630 --> 00:03:35,403
‫possiamo usarlo anche sul numero, e quindi facciamolo qui.

75
00:03:39,750 --> 00:03:42,776
‫Quindi il tipo, vogliamo ancora che

76
00:03:42,776 --> 00:03:47,460
‫sia un numero, e vogliamo anche che sia obbligatorio, ok?

77
00:03:47,460 --> 00:03:49,460
‫Ora, qui nella richiesta possiamo

78
00:03:49,460 --> 00:03:52,310
‫effettivamente specificare l'errore che vogliamo che venga visualizzato

79
00:03:52,310 --> 00:03:54,020
‫quando manca questo campo.

80
00:03:54,020 --> 00:03:55,760
‫Quindi, per farlo, dobbiamo

81
00:03:55,760 --> 00:03:59,300
‫solo passare in un array e il primo è vero.

82
00:03:59,300 --> 00:04:01,720
‫Quindi il primo elemento è vero e il

83
00:04:01,720 --> 00:04:03,820
‫secondo è la stringa di errore.

84
00:04:03,820 --> 00:04:08,670
‫Diciamo che un tour deve avere un nome, e poi qui

85
00:04:08,670 --> 00:04:10,270
‫facciamo lo stesso.

86
00:04:15,459 --> 00:04:17,490
‫Il tour deve avere un prezzo, ok?

87
00:04:17,490 --> 00:04:19,698
‫Quindi possiamo anche impostare i

88
00:04:19,698 --> 00:04:22,720
‫valori predefiniti e facciamolo qui per la valutazione.

89
00:04:22,720 --> 00:04:24,640
‫Quindi, di nuovo, specificherò

90
00:04:24,640 --> 00:04:27,610
‫alcune opzioni del tipo di schema qui, che non

91
00:04:27,610 --> 00:04:29,700
‫è obbligatorio, quindi è sufficiente definire

92
00:04:29,700 --> 00:04:32,210
‫semplicemente il tipo qui come abbiamo fatto

93
00:04:32,210 --> 00:04:34,150
‫noi, ma se vuoi altre funzionalità,

94
00:04:34,150 --> 00:04:37,033
‫allora dobbiamo almeno specificare lo schema oggetto opzioni tipo.

95
00:04:38,080 --> 00:04:42,580
‫Ok, quindi dobbiamo specificare di nuovo il tipo, che è numero, e come

96
00:04:42,580 --> 00:04:47,480
‫impostazione predefinita voglio che sia 4. 5.

97
00:04:48,350 --> 00:04:50,990
‫Quindi, se ora creiamo un nuovo documento

98
00:04:50,990 --> 00:04:54,270
‫del tour utilizzando questo schema e non specificando la

99
00:04:54,270 --> 00:04:58,928
‫valutazione, verrà automaticamente impostato su 4. 5, va bene?

100
00:04:58,928 --> 00:05:02,100
‫E per finire, proviamone un altro qui, vale a

101
00:05:02,100 --> 00:05:04,853
‫dire che il nome dovrebbe essere univoco.

102
00:05:05,910 --> 00:05:09,080
‫Quindi, univoco e impostalo su vero, e così in

103
00:05:09,080 --> 00:05:11,020
‫questo modo, ora possiamo avere

104
00:05:11,020 --> 00:05:14,390
‫due documenti del tour con lo stesso nome, va bene?

105
00:05:14,390 --> 00:05:16,550
‫Quindi, questo è il nostro schema

106
00:05:16,550 --> 00:05:18,370
‫di base, ora andiamo

107
00:05:18,370 --> 00:05:21,230
‫avanti e creiamo un modello da esso, ok?

108
00:05:21,230 --> 00:05:22,380
‫Ed è

109
00:05:24,890 --> 00:05:28,412
‫molto semplice, creiamo semplicemente una variabile chiamata

110
00:05:28,412 --> 00:05:32,390
‫Tour e poi mangusta. model, poi il nome del

111
00:05:32,390 --> 00:05:36,380
‫modello, che è Tour con una T maiuscola qui,

112
00:05:36,380 --> 00:05:37,780
‫va bene.

113
00:05:37,780 --> 00:05:39,930
‫E quindi questa è solo una

114
00:05:39,930 --> 00:05:42,500
‫specie di convenzione nella programmazione per usare sempre le

115
00:05:42,500 --> 00:05:44,720
‫maiuscole sui nomi dei modelli e sulle variabili.

116
00:05:44,720 --> 00:05:47,040
‫Quindi qui è lo stesso, quindi ho anche

117
00:05:47,040 --> 00:05:49,980
‫creato questa variabile di tour qui con una T maiuscola solo così

118
00:05:49,980 --> 00:05:52,630
‫sappiamo che abbiamo a che fare con un modello qui.

119
00:05:53,750 --> 00:05:55,940
‫Va bene, quindi il

120
00:05:55,940 --> 00:06:00,940
‫nome del modello e poi lo schema, e questo è tutto.

121
00:06:01,310 --> 00:06:04,210
‫Quindi, proprio così, abbiamo creato

122
00:06:04,210 --> 00:06:08,210
‫un tour dallo schema che abbiamo creato qui all'inizio.

123
00:06:08,210 --> 00:06:10,150
‫Bene, quindi nel prossimo

124
00:06:10,150 --> 00:06:12,570
‫video useremo questo modello qui

125
00:06:12,570 --> 00:06:17,220
‫per creare il nostro primissimo documento del tour, va bene?

126
00:06:17,220 --> 00:06:21,300
‫Quindi, solo un riassunto qui, abbiamo usato una nuova mangusta. Schema qui per

127
00:06:21,300 --> 00:06:24,525
‫specificare uno schema per i nostri dati.

128
00:06:24,525 --> 00:06:27,870
‫Quindi, sostanzialmente descrivendolo e facendo anche qualche convalida.

129
00:06:27,870 --> 00:06:29,800
‫Ad esempio, questo è richiesto

130
00:06:29,800 --> 00:06:32,580
‫qui, questo è in realtà qualcosa chiamato validatore perché

131
00:06:32,580 --> 00:06:35,120
‫viene utilizzato per convalidare i nostri dati.

132
00:06:35,120 --> 00:06:37,330
‫In questo caso, semplicemente per convalidare se

133
00:06:37,330 --> 00:06:39,390
‫il nome è effettivamente presente.

134
00:06:39,390 --> 00:06:41,757
‫E ci sono molti validatori in Mongoose,

135
00:06:41,757 --> 00:06:44,200
‫e possiamo anche crearne uno nostro, quindi

136
00:06:44,200 --> 00:06:46,400
‫ovviamente ne parleremo un po' più

137
00:06:46,400 --> 00:06:50,186
‫tardi, di nuovo, una volta che avremo davvero bisogno di queste funzionalità.

138
00:06:50,186 --> 00:06:52,600
‫Ad ogni modo, ora passiamo velocemente per

139
00:06:52,600 --> 00:06:54,540
‫iniziare finalmente a utilizzare il modello

140
00:06:54,540 --> 00:06:56,113
‫che abbiamo appena creato.

