1
00:00:03,710 --> 00:00:10,380
Maintenant que nous avons eu un aperçu rapide de Mongoose ODM et

2
00:00:10,380 --> 00:00:16,710
comment Mongoose apporte des schémas pour structurer les documents que nous stockons dans notre MongoDB,

3
00:00:16,710 --> 00:00:19,830
regardons comment nous utilisons

4
00:00:19,830 --> 00:00:27,000
le module de noeud Mongoose et ensuite l'incorporer dans notre application de noeud.

5
00:00:27,000 --> 00:00:31,065
Ensuite, utilisez Mongoose pour communiquer avec

6
00:00:31,065 --> 00:00:35,760
notre serveur MongoDB, puis stocker et récupérer des

7
00:00:35,760 --> 00:00:41,355
documents avec des informations de structure dans les documents.

8
00:00:41,355 --> 00:00:44,830
Pour commencer cet exercice,

9
00:00:44,830 --> 00:00:48,080
accédez à un emplacement pratique sur votre ordinateur.

10
00:00:48,080 --> 00:00:52,760
Donc, ici je suis dans le dossier Node JS où j'ai stocké

11
00:00:52,760 --> 00:00:57,020
tous les exemples de ce cours et puis je vais

12
00:00:57,020 --> 00:01:02,210
créer un nouveau dossier nommé noeud Mongoose.

13
00:01:02,210 --> 00:01:10,320
C' est là que nous allons créer l'application de nœud en utilisant Mongoose ensuite.

14
00:01:10,320 --> 00:01:12,900
Dans le terminal ou la fenêtre de commande,

15
00:01:12,900 --> 00:01:19,080
déplacez vers le dossier Mongoose du noeud, puis initialisez une application de noeud là.

16
00:01:19,080 --> 00:01:22,385
Donc, laissez-moi taper npm init et puis

17
00:01:22,385 --> 00:01:26,359
initialiser l'application de nœud, puis je nommerais l'application

18
00:01:26,359 --> 00:01:34,174
comme Node-Mongoose et le point d'entrée est index.js git history,

19
00:01:34,174 --> 00:01:42,590
mots-clés, auteur et licence et nous dirons ok.

20
00:01:42,590 --> 00:01:49,574
Une fois le fichier package.json de noeud créé,

21
00:01:49,574 --> 00:01:54,500
ouvrez le projet dans l'éditeur de texte de votre choix.

22
00:01:54,500 --> 00:02:02,809
Donc, ici, j'ai mon projet ouvert dans Visual Studio.

23
00:02:02,809 --> 00:02:05,915
Laissez-moi entrer dans le fichier package.json, puis ajouter dans

24
00:02:05,915 --> 00:02:14,750
le script de démarrage, puis nous

25
00:02:14,750 --> 00:02:24,160
dirons commencer l'index de noeud comme d'habitude chaque fois que nous commençons avec une nouvelle application de noeud.

26
00:02:24,160 --> 00:02:29,945
Ensuite, en allant au terminal ou à la fenêtre de commande, installons Mongoose.

27
00:02:29,945 --> 00:02:37,290
Donc, à l'invite, tapez npm installer Mongoose, enregistrez.

28
00:02:39,470 --> 00:02:45,570
Qui en ce moment est Mongoose 5.1.7.

29
00:02:45,570 --> 00:02:49,760
Donc, ce sont les versions que je vais utiliser dans ce cours.

30
00:02:49,760 --> 00:02:54,920
Puis aller à mon application dans l'éditeur.

31
00:02:54,920 --> 00:03:01,430
Permettez-moi de créer un sous-dossier dans le projet appelé Models.

32
00:03:01,430 --> 00:03:07,320
Donc, c'est là que je vais stocker tous les modèles pour mon application.

33
00:03:07,340 --> 00:03:10,230
Dans le dossier models,

34
00:03:10,230 --> 00:03:15,170
permettez-moi de créer un nouveau fichier nommé dishes.js.

35
00:03:15,170 --> 00:03:19,535
Donc, c'est là que je vais créer le schéma et le modèle

36
00:03:19,535 --> 00:03:24,680
pour mes plats document que je vais stocker,

37
00:03:24,680 --> 00:03:29,770
la collection de plats qui stocke les documents pour chaque vaisselle.

38
00:03:29,770 --> 00:03:36,730
Donc, juste là, laissez-moi d'abord importer Mongoose.

39
00:03:39,320 --> 00:03:47,880
Donc, nous allons exiger Mongoose dans ce fichier, puis dire que le

40
00:03:47,880 --> 00:03:57,940
schéma const est le schéma Mongoose.

41
00:03:59,420 --> 00:04:03,510
Ensuite, nous allons créer le schéma ici.

42
00:04:03,510 --> 00:04:13,845
Donc, nous allons dire const Dish.Schema nouveau schéma.

43
00:04:13,845 --> 00:04:19,590
Donc, c'est là que je définit le schéma pour mon plat.

44
00:04:20,830 --> 00:04:27,270
À l'intérieur de ce schéma, permettez-moi de définir les différentes valeurs.

45
00:04:27,270 --> 00:04:29,830
Donc, je vais dire nom,

46
00:04:29,890 --> 00:04:34,405
qui est le type String.

47
00:04:34,405 --> 00:04:41,480
Donc, c'est le type de schéma et ensuite cela je déclarerais comme nécessaire.

48
00:04:41,480 --> 00:04:43,460
Donc, je vais dire vrai.

49
00:04:43,460 --> 00:04:52,790
Donc, chaque document aura le nom comme un champ obligatoire là-bas et alors je

50
00:04:52,790 --> 00:04:57,185
vais également déclarer cela comme unique signifiant qu'

51
00:04:57,185 --> 00:05:02,545
aucun document ne devrait avoir le même champ de nom dedans.

52
00:05:02,545 --> 00:05:08,230
C' est donc le premier champ de mon document.

53
00:05:10,190 --> 00:05:19,440
Ensuite, nous inclurons également un autre champ appelé comme, description.

54
00:05:19,440 --> 00:05:29,205
La description est de la chaîne de type et obligatoire true.

55
00:05:29,205 --> 00:05:35,165
En outre, nous pouvons demander à Mongoose d'insérer automatiquement des

56
00:05:35,165 --> 00:05:41,639
horodatages dans notre modèle.

57
00:05:41,639 --> 00:05:50,340
Donc, juste là, nous pouvons juste mettre en place les horodatages du drapeau : vrai.

58
00:05:50,340 --> 00:05:55,810
Ainsi, cela ajoutera automatiquement les

59
00:05:55,810 --> 00:06:01,340
deux horodatages créés à et mis à jour à, dans chaque document stocké

60
00:06:01,340 --> 00:06:07,235
dans notre application et il mettra automatiquement à jour ces valeurs.

61
00:06:07,235 --> 00:06:11,330
Chaque fois que nous mettons à jour le document et le créé à sera automatiquement

62
00:06:11,330 --> 00:06:15,390
initialisé lorsque le document est le premier créateur de cette époque.

63
00:06:15,390 --> 00:06:22,680
Après cela, nous dirons var Plats.

64
00:06:22,680 --> 00:06:24,549
Donc, étant donné le schéma,

65
00:06:24,549 --> 00:06:29,605
maintenant nous allons construire le modèle à partir de ce schéma.

66
00:06:29,605 --> 00:06:35,215
Donc, nous allons dire le modèle et le plat de Mongoose,

67
00:06:35,215 --> 00:06:43,570
et cela va utiliser le schéma de plat que nous venons de déclarer plus tôt.

68
00:06:43,570 --> 00:06:48,590
Ensuite, nous allons exporter

69
00:06:48,590 --> 00:06:55,725
ce modèle à partir de ce fichier ici.

70
00:06:55,725 --> 00:06:58,410
Donc, nous allons dire des plats d'exportation de module.

71
00:06:58,410 --> 00:07:00,545
Donc, maintenant nous avons construit

72
00:07:00,545 --> 00:07:05,780
le schéma Mongoose et le modèle correspondant et le modèle est maintenant exporté d'ici.

73
00:07:05,780 --> 00:07:10,580
Ainsi, cela peut être importé dans notre application et utilisé.

74
00:07:10,580 --> 00:07:13,345
Donc, dans notre dossier de projet,

75
00:07:13,345 --> 00:07:20,415
permettez-moi de créer un nouveau fichier nommé index.js.

76
00:07:20,415 --> 00:07:23,265
Dans le fichier index.js,

77
00:07:23,265 --> 00:07:31,450
laissez-moi d'abord exiger Mongoose,

78
00:07:31,820 --> 00:07:34,900
puis après cela, nous pouvons dire que les

79
00:07:34,900 --> 00:07:44,970
plats const nécessitent des modèles plats.

80
00:07:44,970 --> 00:07:49,210
Parce que nous avons déjà créé le modèle Dishes dans

81
00:07:49,210 --> 00:07:55,740
le fichier plats de modèles là-bas et ensuite nous l'avons besoin ici.

82
00:07:55,740 --> 00:08:02,975
Maintenant, pour établir la connexion au serveur Mongo,

83
00:08:02,975 --> 00:08:09,330
nous allons dire const URL mongodb.

84
00:08:09,840 --> 00:08:17,110
Localhost 27017, Confusion.

85
00:08:17,110 --> 00:08:25,760
Donc, cette base de données est celle à laquelle nous allons nous connecter à partir de notre application

86
00:08:25,760 --> 00:08:35,125
, puis après cela, nous pouvons établir la connexion en disant const connect Mongoose.

87
00:08:35,125 --> 00:08:38,195
Mongoose prend en charge cette méthode de connexion,

88
00:08:38,195 --> 00:08:41,695
qui prend l'URL comme premier paramètre.

89
00:08:41,695 --> 00:08:44,250
Donc, une fois que nous avons établi cela,

90
00:08:44,250 --> 00:08:49,470
alors nous disons simplement connecter alors.

91
00:08:49,470 --> 00:08:52,280
Notez que puisque nous utilisons déjà des promesses,

92
00:08:52,280 --> 00:08:57,680
nous pouvons simplement dire se connecter puis cela prendra

93
00:08:57,680 --> 00:09:03,774
une fonction comme paramètre

94
00:09:03,774 --> 00:09:10,175
et ici nous pouvons maintenant nous connecter à la base de données.

95
00:09:10,175 --> 00:09:13,550
Donc maintenant, une fois que cette connexion est établie,

96
00:09:13,550 --> 00:09:17,800
laissez-moi faire un journal de console

97
00:09:17,800 --> 00:09:26,060
disant connecté correctement au serveur,

98
00:09:26,100 --> 00:09:36,355
et ici je peux créer un nouveau plat en disant var

99
00:09:36,355 --> 00:09:45,560
nouveau plat, puis Plats et à l'intérieur ici je peux spécifier un document donc je suis

100
00:09:45,560 --> 00:09:50,170
en train de créer un nouveau plat de ce genre et puis ainsi ici Je vais

101
00:09:50,170 --> 00:09:55,510
spécifier les deux champs qui sont requis.

102
00:09:55,510 --> 00:09:57,920
Donc, je vais dire nom,

103
00:10:07,950 --> 00:10:16,390
description et c'est ainsi que vous créeriez un nouveau plat, puis une fois que nous créons

104
00:10:16,390 --> 00:10:24,910
un nouveau plat à partir du modèle, nous allons simplement dire nouveau plat sauver.

105
00:10:24,910 --> 00:10:29,760
La méthode save fera enregistrer cette valeur Dish,

106
00:10:29,760 --> 00:10:35,060
puis comme vous vous attendez retournera une promesse,

107
00:10:35,060 --> 00:10:45,165
puis ici nous obtiendrons la valeur Dish comme appel là-bas et puis, je

108
00:10:45,165 --> 00:10:54,940
peux simplement enregistrer la valeur Dish ici et puis, après cela, nous dirons

109
00:10:54,940 --> 00:11:00,915
Plats trouver et donc nous trouverons

110
00:11:00,915 --> 00:11:07,090
tous les Plats et puis dire exec.

111
00:11:07,090 --> 00:11:10,255
L' exec s'assurera que cela est

112
00:11:10,255 --> 00:11:15,250
exécuté et qu'il retournera une promesse et que cette promesse

113
00:11:15,250 --> 00:11:19,660
sera retournée afin qu'il puisse ensuite

114
00:11:19,660 --> 00:11:27,040
enchaîner la méthode aux autres.

115
00:11:27,040 --> 00:11:33,975
Donc, vous voyez comment j'utilise des promesses, puis j'invoque la méthode précédente afin

116
00:11:33,975 --> 00:11:41,395
que celle-ci trouve tous les Dishes dans ma base de données,

117
00:11:41,395 --> 00:11:45,905
dans la collection Dishes, puis le rend disponible pour moi.

118
00:11:45,905 --> 00:11:55,550
Donc, quand je reçois les plats, alors je peux simplement consigner les plats juste pour voir ce qui est

119
00:11:55,550 --> 00:11:58,790
retourné et cela évidemment à ce stade devrait

120
00:11:58,790 --> 00:12:02,710
retourner ce seul plat que j'ai inséré dans

121
00:12:02,710 --> 00:12:10,940
ma collection Dishes et ensuite nous dirons

122
00:12:11,010 --> 00:12:15,550
retourner Plats supprimer avec

123
00:12:15,550 --> 00:12:19,930
un objet JavaScript vide qui va supprimer tous les plats de

124
00:12:19,930 --> 00:12:24,384
la base de données et retourner la

125
00:12:24,384 --> 00:12:31,790
connexion mongoose close qui ferme la connexion à la base de données.

126
00:12:35,040 --> 00:12:38,830
Et attraper n'importe quelle erreur à ce stade.

127
00:12:38,830 --> 00:12:49,430
Donc, nous allons utiliser le catch, puis le journal de la console.

128
00:12:50,600 --> 00:12:57,820
C' est ça. Donc, ce que nous faisons ici, c'est que nous créons le nouveau plat et ensuite nous

129
00:12:57,820 --> 00:13:04,255
sauvegardons le plat puis nous trouvons tous les plats de la collection.

130
00:13:04,255 --> 00:13:06,740
C' est ça. Nous utilisons les promesses ici,

131
00:13:06,740 --> 00:13:10,435
donc nous avons enchaîné toutes les tanières ici. C'est ça.

132
00:13:10,435 --> 00:13:15,595
Sauvegardons les modifications, puis voyons cette application en cours d'exécution.

133
00:13:15,595 --> 00:13:17,455
Allez dans le terminal,

134
00:13:17,455 --> 00:13:21,505
à l'invite de type npm start et vous

135
00:13:21,505 --> 00:13:25,735
verrez que mon application de nœud s'exécute et puis il montre, d'

136
00:13:25,735 --> 00:13:33,110
abord, qu'il a créé ce plat particulier.

137
00:13:33,110 --> 00:13:37,285
Notez en particulier, que ces deux champs,

138
00:13:37,285 --> 00:13:39,365
mis à jour à et créés à,

139
00:13:39,365 --> 00:13:43,465
ces deux horodatages ont été automatiquement ajoutés dans

140
00:13:43,465 --> 00:13:47,790
le Dish ici et que vous pouvez voir que le créé à et

141
00:13:47,790 --> 00:13:51,630
mis à jour à des horodatages sont exactement les mêmes pour le moment

142
00:13:51,630 --> 00:13:57,235
, puis l'ID est également automatiquement ajouté dans.

143
00:13:57,235 --> 00:14:03,210
Dans l'étape suivante, nous imprimons tous les plats qui ont été récupérés et vous

144
00:14:03,210 --> 00:14:10,340
pouvez donc voir que ce seul plat est dans la collection, collection Dishes

145
00:14:10,340 --> 00:14:15,935
, et c'est ce qui est imprimé sur l'écran ici.

146
00:14:15,935 --> 00:14:25,660
Initialisons maintenant le dépôt Git et puis mettons en place le fichier gitignore obtenu

147
00:14:25,660 --> 00:14:35,125
alors allons à l'éditeur puis nous créons le fichier .gitignore, puis ajoutons des

148
00:14:35,125 --> 00:14:40,240
modules de noeud au fichier gitignore et sauvegardons les changements,

149
00:14:40,240 --> 00:14:45,325
puis revenons à l'invite, laissez-moi

150
00:14:45,325 --> 00:14:48,550
taper git status et nous voyons que

151
00:14:48,550 --> 00:14:51,955
nous avons ces fichiers qui n'ont pas été archivés, donc nous dirons

152
00:14:51,955 --> 00:14:56,545
git add et ensuite git

153
00:14:56,545 --> 00:15:04,535
commit le message Mongoose Part One.

154
00:15:04,535 --> 00:15:08,110
Avec cela, nous complétons cet exercice.

155
00:15:08,110 --> 00:15:14,300
Dans cet exercice, nous avons vu à quel point il est facile de mettre en place une application de nœud avec

156
00:15:14,300 --> 00:15:21,335
mongoose et de se connecter à notre serveur MongoDB, puis d'interagir avec elle.

157
00:15:21,335 --> 00:15:24,985
Maintenant, comme mongoose construit sur le serveur MongoDB,

158
00:15:24,985 --> 00:15:28,980
Mongoose peut accéder à toutes les différentes méthodes

159
00:15:28,980 --> 00:15:32,690
qui sont prises en charge par le pilote MongoDB également.