﻿1
00:00:01,090 --> 00:00:03,130
‫Instructeur : Ainsi, dans la dernière

2
00:00:03,130 --> 00:00:06,010
‫conférence, nous avons appris les schémas et les modèles

3
00:00:06,010 --> 00:00:08,260
‫de Mongoose, et implémentons donc maintenant un

4
00:00:08,260 --> 00:00:11,173
‫schéma et un modèle très simples pour notre application.

5
00:00:12,920 --> 00:00:14,990
‫Et pour l'instant, faisons-le ici sur

6
00:00:14,990 --> 00:00:17,330
‫notre serveur. js fichier.

7
00:00:17,330 --> 00:00:19,020
‫Plus tard, bien sûr, nous

8
00:00:19,020 --> 00:00:21,370
‫allons déplacer cela dans un autre fichier.

9
00:00:21,370 --> 00:00:24,560
‫Ainsi, Mongoose concerne les modèles, et un modèle

10
00:00:24,560 --> 00:00:26,960
‫est comme un plan que

11
00:00:26,960 --> 00:00:29,420
‫nous utilisons pour créer des documents.

12
00:00:29,420 --> 00:00:32,290
‫C'est donc un peu comme les classes en JavaScript, que

13
00:00:32,290 --> 00:00:35,080
‫nous utilisons aussi en quelque sorte comme des

14
00:00:35,080 --> 00:00:38,590
‫plans afin de créer des objets à partir d'eux, n'est-ce pas ?

15
00:00:38,590 --> 00:00:41,500
‫Encore une fois, nous créons un modèle dans Mongoose afin

16
00:00:41,500 --> 00:00:44,000
‫de créer des documents en l'utilisant, et

17
00:00:44,000 --> 00:00:47,670
‫également pour interroger la mise à jour et la suppression de ces documents.

18
00:00:47,670 --> 00:00:50,840
‫Donc, fondamentalement, pour effectuer chacune des opérations CRUD, donc créer,

19
00:00:50,840 --> 00:00:53,420
‫lire, mettre à jour et supprimer,

20
00:00:53,420 --> 00:00:56,520
‫nous avons besoin d'un modèle Mongoose, et pour créer

21
00:00:56,520 --> 00:00:59,520
‫un modèle, nous avons en fait besoin d'un schéma.

22
00:00:59,520 --> 00:01:01,700
‫Donc, nous créons en fait des modèles

23
00:01:01,700 --> 00:01:03,820
‫à partir du schéma Mongoose, comme

24
00:01:03,820 --> 00:01:06,490
‫nous l'avons appris dans la dernière vidéo, et nous

25
00:01:06,490 --> 00:01:09,910
‫utilisons le schéma pour décrire nos données, pour définir des valeurs

26
00:01:09,910 --> 00:01:13,660
‫par défaut, pour valider les données, et toutes sortes de choses comme ça.

27
00:01:13,660 --> 00:01:15,620
‫Donc, comme vous allez le

28
00:01:15,620 --> 00:01:17,930
‫voir maintenant, parce que maintenant nous allons

29
00:01:17,930 --> 00:01:20,990
‫commencer à créer un schéma très simple pour nos tournées.

30
00:01:20,990 --> 00:01:24,980
‫Alors, disons que tourSchema est une

31
00:01:28,300 --> 00:01:32,363
‫nouvelle mangouste. Schéma.

32
00:01:33,852 --> 00:01:36,752
‫Ajoutez qu'ici, nous passons en fait notre schéma en tant qu'objet.

33
00:01:37,590 --> 00:01:40,990
‫Très bien, nous pouvons alors également transmettre certaines options dans le

34
00:01:40,990 --> 00:01:44,090
‫schéma, mais je laisse cela à une future vidéo où

35
00:01:44,090 --> 00:01:46,640
‫nous avons réellement besoin de cette fonctionnalité.

36
00:01:46,640 --> 00:01:49,020
‫Alors, souvenez-vous des documents de visite que nous avons

37
00:01:49,020 --> 00:01:51,090
‫créés dans la dernière section lorsque

38
00:01:51,090 --> 00:01:53,190
‫nous avons commencé à explorer Mongoose DB ?

39
00:01:53,190 --> 00:01:54,760
‫Nous leur avons donc

40
00:01:54,760 --> 00:01:57,100
‫toujours donné un nom, une note et

41
00:01:57,100 --> 00:01:59,226
‫un prix, n'est-ce pas, et reproduisons maintenant

42
00:01:59,226 --> 00:02:02,010
‫cela ici en prononçant le nom, puis en décrivant

43
00:02:02,010 --> 00:02:04,717
‫le type de données que nous voulons après le

44
00:02:04,717 --> 00:02:07,500
‫nom, et nous voulons que ce soit une chaîne.

45
00:02:07,500 --> 00:02:09,770
‫Donc, Mongoose utilise en fait les

46
00:02:09,770 --> 00:02:13,280
‫types de données JavaScript natifs, et donc ici, nous pouvons

47
00:02:13,280 --> 00:02:16,980
‫dire chaîne, ou après évaluation, nous pouvons dire que nous voulons

48
00:02:19,394 --> 00:02:22,163
‫un nombre et le même que le prix.

49
00:02:23,340 --> 00:02:25,890
‫Cela devrait aussi être un nombre, non?

50
00:02:25,890 --> 00:02:30,320
‫C'est donc la façon la plus basique de décrire nos données.

51
00:02:30,320 --> 00:02:33,130
‫Nous avons donc un nom, une note et un prix,

52
00:02:33,130 --> 00:02:34,913
‫et nous avons spécifié le

53
00:02:34,913 --> 00:02:38,150
‫type de données que nous attendons pour chacun de ces champs.

54
00:02:38,150 --> 00:02:40,340
‫Encore une fois, c'est la

55
00:02:40,340 --> 00:02:43,100
‫manière la plus basique de décrire un schéma, mais

56
00:02:43,100 --> 00:02:45,650
‫nous pouvons aller plus loin en définissant quelque

57
00:02:45,650 --> 00:02:48,360
‫chose appelé options de type de schéma pour chaque

58
00:02:48,360 --> 00:02:50,600
‫champ, ou uniquement pour un champ spécifique.

59
00:02:50,600 --> 00:02:52,640
‫Commençons donc ici par le nom,

60
00:02:52,640 --> 00:02:54,270
‫et au lieu de

61
00:02:54,270 --> 00:02:58,490
‫simplement le spécifier sous forme de chaîne, passons en fait un autre objet.

62
00:02:58,490 --> 00:03:01,340
‫Et maintenant, nous disons que nous voulons que le type

63
00:03:01,340 --> 00:03:02,850
‫soit une chaîne, mais

64
00:03:02,850 --> 00:03:05,640
‫nous pouvons maintenant définir quelques options supplémentaires, d'accord ?

65
00:03:05,640 --> 00:03:10,640
‫Par exemple, nous pouvons dire que ce champ est obligatoire, et donc

66
00:03:12,070 --> 00:03:13,060
‫nous définissons

67
00:03:13,060 --> 00:03:17,110
‫simplement la propriété requise ici sur true, d'accord ?

68
00:03:17,110 --> 00:03:20,970
‫Encore une fois, cet objet ici sont les options de type de schéma,

69
00:03:20,970 --> 00:03:23,320
‫et elles peuvent être différentes pour différents types,

70
00:03:23,320 --> 00:03:25,640
‫par exemple le type de nombre

71
00:03:25,640 --> 00:03:28,250
‫a des options de schéma différentes de la chaîne

72
00:03:28,250 --> 00:03:30,770
‫ici, mais beaucoup d'entre elles sont également similaires.

73
00:03:30,770 --> 00:03:32,630
‫Ainsi, par exemple, le requis, nous

74
00:03:32,630 --> 00:03:35,403
‫pouvons également l'utiliser sur le numéro, et faisons-le ici.

75
00:03:39,750 --> 00:03:42,776
‫Donc le type, on veut toujours que

76
00:03:42,776 --> 00:03:47,460
‫ce soit un nombre, et on veut aussi qu'il soit obligatoire, d'accord ?

77
00:03:47,460 --> 00:03:49,460
‫Maintenant, ici, dans le champ requis,

78
00:03:49,460 --> 00:03:52,310
‫nous pouvons réellement spécifier l'erreur que nous voulons afficher

79
00:03:52,310 --> 00:03:54,020
‫lorsque ce champ nous manque.

80
00:03:54,020 --> 00:03:55,760
‫Donc, pour ce faire,

81
00:03:55,760 --> 00:03:59,300
‫il suffit de passer un tableau, et le premier est vrai.

82
00:03:59,300 --> 00:04:01,720
‫Ainsi, le premier élément est vrai et

83
00:04:01,720 --> 00:04:03,820
‫le second est la chaîne d'erreur.

84
00:04:03,820 --> 00:04:08,670
‫Disons qu'une tournée doit avoir un nom, et puis ici faisons

85
00:04:08,670 --> 00:04:10,270
‫la même chose.

86
00:04:15,459 --> 00:04:17,490
‫La visite doit avoir un prix, d'accord ?

87
00:04:17,490 --> 00:04:19,698
‫Ensuite, nous pouvons également définir des

88
00:04:19,698 --> 00:04:22,720
‫valeurs par défaut et faisons-le ici pour la note.

89
00:04:22,720 --> 00:04:24,640
‫Donc encore une fois, je

90
00:04:24,640 --> 00:04:27,610
‫vais spécifier quelques options de type de schéma ici, ce qui

91
00:04:27,610 --> 00:04:29,700
‫n'est pas obligatoire, il suffit donc de définir

92
00:04:29,700 --> 00:04:32,210
‫simplement le type ici comme nous l'avons fait, mais

93
00:04:32,210 --> 00:04:34,150
‫si vous voulez plus de fonctionnalités, alors

94
00:04:34,150 --> 00:04:37,033
‫nous devons au moins spécifier le schéma type d'objet d'options.

95
00:04:38,080 --> 00:04:42,580
‫D'accord, puis nous devons à nouveau spécifier le type, qui est le nombre, et

96
00:04:42,580 --> 00:04:47,480
‫par défaut, je veux qu'il soit 4. 5.

97
00:04:48,350 --> 00:04:50,990
‫Et donc si nous créions maintenant un nouveau document

98
00:04:50,990 --> 00:04:54,270
‫de tournée en utilisant ce schéma et sans spécifier la note,

99
00:04:54,270 --> 00:04:58,928
‫il serait alors automatiquement défini sur 4. 5, d'accord ?

100
00:04:58,928 --> 00:05:02,100
‫Et pour finir, essayons-en un autre ici, c'est-à-dire

101
00:05:02,100 --> 00:05:04,853
‫que le nom doit être unique.

102
00:05:05,910 --> 00:05:09,080
‫Alors, unique et définissez-le sur true, et ainsi, nous

103
00:05:09,080 --> 00:05:11,020
‫pouvons maintenant avoir deux

104
00:05:11,020 --> 00:05:14,390
‫documents de tournée avec le même nom, d'accord ?

105
00:05:14,390 --> 00:05:16,550
‫Donc, c'est notre schéma très basique,

106
00:05:16,550 --> 00:05:18,370
‫allons-y maintenant et créons

107
00:05:18,370 --> 00:05:21,230
‫un modèle à partir de celui-ci, d'accord ?

108
00:05:21,230 --> 00:05:22,380
‫Et c'est

109
00:05:24,890 --> 00:05:28,412
‫très simple, nous créons simplement une variable

110
00:05:28,412 --> 00:05:32,390
‫appelée Tour, puis mangouste. model, puis le nom

111
00:05:32,390 --> 00:05:36,380
‫du modèle, qui est Tour avec un T majuscule

112
00:05:36,380 --> 00:05:37,780
‫ici, d'accord.

113
00:05:37,780 --> 00:05:39,930
‫Et donc c'est juste une sorte

114
00:05:39,930 --> 00:05:42,500
‫de convention en programmation pour toujours utiliser des majuscules

115
00:05:42,500 --> 00:05:44,720
‫sur les noms de modèles et les variables.

116
00:05:44,720 --> 00:05:47,040
‫Donc ici c'est la même chose, donc j'ai aussi

117
00:05:47,040 --> 00:05:49,980
‫créé cette variable de tournée ici avec un T majuscule juste pour

118
00:05:49,980 --> 00:05:52,630
‫que nous sachions que nous avons affaire à un modèle ici.

119
00:05:53,750 --> 00:05:55,940
‫D'accord, donc le

120
00:05:55,940 --> 00:06:00,940
‫nom du modèle et ensuite le schéma, et c'est tout.

121
00:06:01,310 --> 00:06:04,210
‫Donc, juste comme ça, nous avons créé

122
00:06:04,210 --> 00:06:08,210
‫une visite guidée du schéma que nous avons créé ici au début.

123
00:06:08,210 --> 00:06:10,150
‫D'accord, et donc dans

124
00:06:10,150 --> 00:06:12,570
‫la vidéo suivante, nous allons utiliser ce

125
00:06:12,570 --> 00:06:17,220
‫modèle ici afin de créer notre tout premier document de visite, d'accord ?

126
00:06:17,220 --> 00:06:21,300
‫Donc juste un récapitulatif ici, nous avons utilisé une nouvelle mangouste. Schéma ici pour

127
00:06:21,300 --> 00:06:24,525
‫spécifier un schéma pour nos données.

128
00:06:24,525 --> 00:06:27,870
‫Donc, essentiellement en le décrivant et en faisant également une certaine validation.

129
00:06:27,870 --> 00:06:29,800
‫Par exemple, ceci requis ici,

130
00:06:29,800 --> 00:06:32,580
‫c'est en fait quelque chose appelé un validateur car

131
00:06:32,580 --> 00:06:35,120
‫il est utilisé pour valider nos données.

132
00:06:35,120 --> 00:06:37,330
‫Dans ce cas, il suffit de valider

133
00:06:37,330 --> 00:06:39,390
‫si le nom est bien là.

134
00:06:39,390 --> 00:06:41,757
‫Et il y a beaucoup de validateurs dans Mongoose,

135
00:06:41,757 --> 00:06:44,200
‫et nous pouvons également créer les nôtres, et bien

136
00:06:44,200 --> 00:06:46,400
‫sûr, nous en reparlerons un peu plus

137
00:06:46,400 --> 00:06:50,186
‫tard, encore une fois, une fois que nous aurons réellement besoin de ces fonctionnalités.

138
00:06:50,186 --> 00:06:52,600
‫Quoi qu'il en soit, passons maintenant rapidement afin de

139
00:06:52,600 --> 00:06:54,540
‫pouvoir enfin commencer à utiliser le modèle

140
00:06:54,540 --> 00:06:56,113
‫que nous venons de créer.

