﻿1
00:00:01,110 --> 00:00:02,900
‫Enseignant :

2
00:00:02,900 --> 00:00:05,510
‫Alors rappelez-vous comment dans la

3
00:00:05,510 --> 00:00:07,880
‫vidéo sur notre modèle de

4
00:00:07,880 --> 00:00:10,204
‫données, nous avons dit

5
00:00:10,204 --> 00:00:13,340
‫que nous pouvions soit intégrer, soit

6
00:00:13,340 --> 00:00:16,393
‫référencer les données du guide touristique.

7
00:00:17,930 --> 00:00:20,320
‫Encore une fois, dans cette conférence, nous

8
00:00:20,320 --> 00:00:23,700
‫allons intégrer des documents utilisateur dans des documents de visite, puis

9
00:00:23,700 --> 00:00:25,840
‫dans la vidéo suivante, je

10
00:00:25,840 --> 00:00:28,030
‫vais vous montrer comment nous pouvons réellement

11
00:00:28,030 --> 00:00:30,610
‫référencer les utilisateurs au lieu d'intégrer, d'accord ?

12
00:00:30,610 --> 00:00:33,020
‫L'idée ici est donc que lors de la

13
00:00:33,020 --> 00:00:35,730
‫création d'un nouveau document de tournée, l'utilisateur ajoutera

14
00:00:35,730 --> 00:00:38,630
‫simplement un tableau d'ID utilisateur, et nous obtiendrons ensuite

15
00:00:38,630 --> 00:00:41,020
‫les documents utilisateur correspondants en fonction de

16
00:00:41,020 --> 00:00:42,827
‫ces ID, et les

17
00:00:42,827 --> 00:00:44,800
‫ajouterons à nos documents de tournée.

18
00:00:44,800 --> 00:00:48,813
‫Donc, en d'autres termes, nous les intégrons dans notre tournée, d'accord ?

19
00:00:50,903 --> 00:00:52,323
‫Alors, faisons-le ici maintenant.

20
00:00:55,430 --> 00:00:59,220
‫Les guides seront donc du type tableau, d'accord ?

21
00:00:59,220 --> 00:01:01,700
‫Très simple, et en fait avant d'implémenter un

22
00:01:01,700 --> 00:01:04,080
‫code, laissez-moi vous montrer, à titre d'exemple,

23
00:01:04,080 --> 00:01:06,943
‫comment cela fonctionnerait lors de la création d'une nouvelle visite.

24
00:01:08,680 --> 00:01:11,360
‫Alors, revenons à Postman ici,

25
00:01:11,360 --> 00:01:14,523
‫et créons une nouvelle tournée, d'accord,

26
00:01:16,270 --> 00:01:18,330
‫et donc ici

27
00:01:18,330 --> 00:01:23,113
‫dans notre corps, nous allons bien sûr ajouter les

28
00:01:24,410 --> 00:01:29,400
‫guides, les citations, puis spécifier un tableau d'ID, d'accord ?

29
00:01:29,400 --> 00:01:31,113
‫Alors, obtenons quelques identifiants d'utilisateur.

30
00:01:32,610 --> 00:01:36,070
‫Alors, obtenez tous les utilisateurs, voyons ce que nous avons ici.

31
00:01:36,070 --> 00:01:38,070
‫Nous avons donc un guide ici,

32
00:01:38,070 --> 00:01:39,620
‫en fait, et obtenons donc

33
00:01:40,460 --> 00:01:42,060
‫cet ID avec les guillemets,

34
00:01:46,370 --> 00:01:47,893
‫en fait, et

35
00:01:49,410 --> 00:01:51,163
‫mettons-le ici, et ajoutons-en d'autres.

36
00:01:52,900 --> 00:01:57,100
‫Donc, ceci ici aussi et en fait juste ces deux-là.

37
00:01:57,100 --> 00:02:02,100
‫Cela devrait suffire pour tester ce truc, d'accord, et c'est ainsi que nous

38
00:02:02,410 --> 00:02:04,100
‫allons créer une nouvelle

39
00:02:04,100 --> 00:02:07,490
‫visite avec deux guides, d'accord, et encore une

40
00:02:07,490 --> 00:02:10,440
‫fois, nous avons sauvegardé cette visite, nous

41
00:02:10,440 --> 00:02:11,840
‫allons ensuite, dans

42
00:02:11,840 --> 00:02:13,472
‫les coulisses, récupérer le

43
00:02:13,472 --> 00:02:17,270
‫deux documents utilisateur correspondant à ces deux identifiants, d'accord ?

44
00:02:17,270 --> 00:02:19,263
‫Alors, implémentons cela, et de retour

45
00:02:20,440 --> 00:02:21,930
‫dans notre modèle,

46
00:02:21,930 --> 00:02:23,960
‫le meilleur endroit pour le faire

47
00:02:23,960 --> 00:02:26,283
‫est un middleware pré-enregistré, n'est-ce pas ?

48
00:02:27,280 --> 00:02:29,980
‫Donc, ça se fera automatiquement en coulisses, en

49
00:02:29,980 --> 00:02:31,550
‫gros, à chaque

50
00:02:31,550 --> 00:02:34,730
‫fois qu'une nouvelle tournée est enregistrée, et en fait, je

51
00:02:34,730 --> 00:02:36,780
‫ne veux pas le faire ici.

52
00:02:37,620 --> 00:02:39,250
‫Nous avons donc une requête,

53
00:02:39,250 --> 00:02:40,920
‫ici, voici le document "Middleware",

54
00:02:40,920 --> 00:02:42,203
‫alors faisons-le ici.

55
00:02:43,320 --> 00:02:45,103
‫Alors tourSchema. pre,

56
00:02:53,580 --> 00:02:57,370
‫D'accord, appelons le suivant tout de suite ici, pour

57
00:02:57,370 --> 00:02:59,600
‫ne pas l'oublier à la fin.

58
00:02:59,600 --> 00:03:04,600
‫D'accord, alors nous obtenons ceci. guides en tant qu'entrée, et rappelez-vous que ce sera

59
00:03:05,220 --> 00:03:07,360
‫un tableau de tous les identifiants d'utilisateur,

60
00:03:07,360 --> 00:03:10,330
‫à droite, et nous allons donc les parcourir en boucle à

61
00:03:10,330 --> 00:03:13,290
‫l'aide d'un fichier . map, puis

62
00:03:13,290 --> 00:03:15,480
‫à chaque itération, obtenez le

63
00:03:15,480 --> 00:03:18,373
‫document utilisateur pour l'ID actuel, d'accord,

64
00:03:19,477 --> 00:03:24,477
‫et nous allons le stocker dans des guides, d'accord ?

65
00:03:26,460 --> 00:03:29,284
‫Donc, l'élément actuel, qui va être l'ID, eh

66
00:03:29,284 --> 00:03:30,840
‫bien appelons-le ID

67
00:03:30,840 --> 00:03:32,960
‫pour le rendre un peu plus

68
00:03:32,960 --> 00:03:36,360
‫facile à comprendre, et maintenant nous avons réellement besoin de

69
00:03:36,360 --> 00:03:38,803
‫l'utilisateur, d'accord, alors allons-y et importons-le.

70
00:03:41,630 --> 00:03:43,143
‫Donc, const User,

71
00:03:45,490 --> 00:03:46,563
‫require, et

72
00:03:48,000 --> 00:03:53,000
‫c'est en fait dans le même dossier ici, d'accord, donc

73
00:03:55,759 --> 00:03:57,300
‫User. findByID

74
00:04:01,350 --> 00:04:03,730
‫avec l'ID actuel, d'accord ?

75
00:04:03,730 --> 00:04:05,550
‫Mais maintenant, gardez à l'esprit

76
00:04:05,550 --> 00:04:09,977
‫que nous devons en fait attendre cette promesse ici, et donc, par

77
00:04:09,977 --> 00:04:11,870
‫conséquent, la fonction doit être

78
00:04:11,870 --> 00:04:13,513
‫marquée comme asynchrone, mais

79
00:04:15,540 --> 00:04:18,313
‫maintenant nous avons un problème, d'accord, car

80
00:04:18,313 --> 00:04:21,340
‫le fichier . map méthode affectera

81
00:04:21,340 --> 00:04:24,550
‫le résultat de chaque itération au nouvel élément dans

82
00:04:24,550 --> 00:04:27,150
‫le tableau guides, d'accord, et maintenant nous

83
00:04:27,150 --> 00:04:29,100
‫avons une fonction asynchrone ici

84
00:04:29,100 --> 00:04:31,760
‫et, comme vous le savez, qui renvoie

85
00:04:31,760 --> 00:04:34,160
‫une promesse, et donc maintenant ce

86
00:04:34,160 --> 00:04:38,120
‫tableau guides ici est essentiellement un tableau plein de promesses, d'accord.

87
00:04:38,120 --> 00:04:40,530
‫Appelons cela guidesPromises et nous

88
00:04:42,200 --> 00:04:44,160
‫devons donc maintenant exécuter

89
00:04:44,160 --> 00:04:47,240
‫toutes ces promesses, essentiellement en même temps.

90
00:04:47,240 --> 00:04:49,520
‫Comme je vous l'ai montré un peu plus

91
00:04:49,520 --> 00:04:51,490
‫tôt dans ce code, au moins

92
00:04:51,490 --> 00:04:53,860
‫si vous n'avez pas ignoré la section JavaScript asynchrone,

93
00:04:53,860 --> 00:04:58,860
‫tout ce que nous avons à faire est d'attendre Promise. all puis guidesPromise, d'accord,

94
00:05:01,230 --> 00:05:03,450
‫et nous pouvons directement

95
00:05:04,820 --> 00:05:07,670
‫attribuer le résultat de ceci

96
00:05:07,670 --> 00:05:11,390
‫à this. guides, et donc fondamentalement

97
00:05:11,390 --> 00:05:14,130
‫remplacer ce tableau d'ID de temple par

98
00:05:14,130 --> 00:05:18,420
‫un tableau de documents utilisateur, d'accord, et puisque nous utilisons

99
00:05:18,420 --> 00:05:20,000
‫maintenant wait ici,

100
00:05:20,000 --> 00:05:23,860
‫nous devons marquer cette fonction comme async, d'accord ?

101
00:05:23,860 --> 00:05:27,900
‫Faites une sauvegarde, et je pense que c'est en fait ça, d'accord ?

102
00:05:27,900 --> 00:05:31,460
‫Encore une fois, nous devons utiliser Promise. tout ici parce

103
00:05:31,460 --> 00:05:35,298
‫que le résultat de tout cela ici est une promesse, d'accord,

104
00:05:35,298 --> 00:05:38,410
‫et donc ce tableau ici va être un

105
00:05:38,410 --> 00:05:40,483
‫tableau plein de promesses que nous

106
00:05:40,483 --> 00:05:44,180
‫exécuterons ensuite en attendant Promise. tout va bien?

107
00:05:44,180 --> 00:05:46,450
‫Alors, testons cela maintenant, et

108
00:05:46,450 --> 00:05:50,018
‫nous avons déjà tout ce code prêt ici, nous

109
00:05:50,018 --> 00:05:52,373
‫devrions simplement changer ce nom ici.

110
00:05:55,150 --> 00:05:58,560
‫Donc, 'Test Tour', mais les identifiants sont déjà là.

111
00:05:58,560 --> 00:06:01,760
‫Alors envoyons ceci, et le nom de notre tournée doit être

112
00:06:01,760 --> 00:06:05,167
‫plus long, 'New Task Tour'. « D'accord,

113
00:06:06,050 --> 00:06:11,050
‫mais maintenant, jetons un coup d'œil à nos résultats, et

114
00:06:11,240 --> 00:06:15,900
‫nous avons donc effectivement nos guides ici, d'accord ?

115
00:06:15,900 --> 00:06:18,580
‫Ce sont donc les documents complets,

116
00:06:18,580 --> 00:06:22,170
‫et pas seulement les pièces d'identité, n'est-ce pas ?

117
00:06:22,170 --> 00:06:24,198
‫Génial, et c'est ainsi

118
00:06:24,198 --> 00:06:28,440
‫que nous pourrions implémenter l'intégration pour cet exemple de guides touristiques.

119
00:06:28,440 --> 00:06:30,840
‫Maintenant, ce code simple que nous avons implémenté ici

120
00:06:30,840 --> 00:06:33,850
‫ne fonctionne bien sûr que pour créer de nouveaux documents, pas pour

121
00:06:33,850 --> 00:06:35,820
‫les mettre à jour, n'est-ce pas ?

122
00:06:35,820 --> 00:06:38,020
‫Alors maintenant, nous devrions aller de

123
00:06:38,020 --> 00:06:42,350
‫l'avant et implémenter cette même logique également pour les mises à jour.

124
00:06:42,350 --> 00:06:44,540
‫Cependant, je ne vais pas le faire

125
00:06:44,540 --> 00:06:47,530
‫car, rappelez-vous de la vidéo où nous avons modélisé nos

126
00:06:47,530 --> 00:06:49,450
‫données, qu'il y a en fait

127
00:06:49,450 --> 00:06:52,090
‫des inconvénients à intégrer ces données dans ce cas.

128
00:06:52,090 --> 00:06:54,350
‫Par exemple, imaginez qu'un guide touristique

129
00:06:54,350 --> 00:06:56,770
‫met à jour son adresse e-mail ou qu'il

130
00:06:56,770 --> 00:06:59,250
‫change son rôle de guide à guide principal.

131
00:06:59,250 --> 00:07:02,020
‫Chaque fois que l'un de ces changements se produirait, vous devriez

132
00:07:02,020 --> 00:07:04,130
‫alors vérifier si une visite a cet utilisateur

133
00:07:04,130 --> 00:07:06,610
‫comme guide, et si c'est le cas, mettre à

134
00:07:06,610 --> 00:07:08,670
‫jour la visite également, et donc c'est

135
00:07:08,670 --> 00:07:10,650
‫vraiment beaucoup de travail et nous ne

136
00:07:10,650 --> 00:07:11,640
‫sommes pas va

137
00:07:11,640 --> 00:07:13,085
‫aller dans cette direction, d'accord?

138
00:07:13,085 --> 00:07:15,530
‫Maintenant, je voulais toujours vous montrer comment

139
00:07:15,530 --> 00:07:17,220
‫l'intégration fonctionne vraiment

140
00:07:17,220 --> 00:07:19,520
‫et comment nous pourrions l'implémenter dans

141
00:07:19,520 --> 00:07:22,201
‫cette situation, car je pense vraiment qu'il est

142
00:07:22,201 --> 00:07:24,551
‫très important que vous sachiez toujours comment

143
00:07:24,551 --> 00:07:26,340
‫tout faire au cas où

144
00:07:26,340 --> 00:07:28,590
‫vous en auriez besoin dans vos

145
00:07:28,590 --> 00:07:30,820
‫propres applications, d'accord, mais dans cette

146
00:07:30,820 --> 00:07:33,810
‫situation particulière, au lieu d'intégrer, nous utiliserons le référencement,

147
00:07:33,810 --> 00:07:36,085
‫et j'ai expliqué les raisons de

148
00:07:36,085 --> 00:07:38,400
‫le faire dans cette vidéo, d'accord ?

149
00:07:38,400 --> 00:07:40,930
‫Alors, allons de l'avant et faisons cela

150
00:07:40,930 --> 00:07:42,803
‫correctement dans la prochaine conférence.

