1
00:00:03,650 --> 00:00:06,464
Dans les leçons précédentes,

2
00:00:06,464 --> 00:00:08,580
nous avons appris sur Node.

3
00:00:08,580 --> 00:00:13,215
Nous avons également vu comment Node peut être utilisé pour configurer un serveur Web.

4
00:00:13,215 --> 00:00:20,460
Maintenant, les concepteurs de nœuds ont délibérément gardé le nœud petit avec un petit nombre de

5
00:00:20,460 --> 00:00:24,480
modules de code afin qu'ils puissent laisser le soin

6
00:00:24,480 --> 00:00:29,730
aux développeurs tiers de trouver des solutions innovantes aux problèmes.

7
00:00:29,730 --> 00:00:37,590
Ainsi, une fois Node publié, un certain nombre de développeurs tiers ont commencé à concevoir

8
00:00:37,590 --> 00:00:45,875
et à publier des modules tiers intéressants qui peuvent fonctionner au-dessus de la plate-forme Node.

9
00:00:45,875 --> 00:00:50,030
Maintenant, vous avez vu un certain nombre de modules Node qui pourraient être

10
00:00:50,030 --> 00:00:54,185
utilisés pour le développement frontal dans les cours précédents.

11
00:00:54,185 --> 00:00:59,240
Maintenant, dans ce cours, nous examinons le développement côté serveur et sur le côté serveur, l'

12
00:00:59,240 --> 00:01:03,020
un des modules Node tiers les plus populaires ou

13
00:01:03,020 --> 00:01:08,720
frameworks pour la construction de serveurs HTTP est Express.

14
00:01:08,720 --> 00:01:11,480
Regardons quelques détails d'Express dans

15
00:01:11,480 --> 00:01:14,345
cette conférence et ensuite nous allons utiliser Express pour

16
00:01:14,345 --> 00:01:21,725
construire un serveur qui sert l'API REST tout au long de ce cours.

17
00:01:21,725 --> 00:01:25,670
Tout d'abord, qu'est-ce qu'Express ?

18
00:01:25,670 --> 00:01:30,355
Express est un

19
00:01:30,355 --> 00:01:37,519
framework rapide, sans opinion, minimaliste qui fonctionne sur Node.js et prend en charge le développement Web.

20
00:01:37,519 --> 00:01:42,570
C' est la définition que j'ai empruntée à expressjs.com,

21
00:01:42,570 --> 00:01:48,025
le site où la documentation relative à Express est disponible pour nous.

22
00:01:48,025 --> 00:01:53,769
Maintenant Express vous permet de développer une application Web, une

23
00:01:53,769 --> 00:02:02,385
application côté serveur qui servira du contenu pour la consommation par notre front-end.

24
00:02:02,385 --> 00:02:07,730
Express fournit un ensemble robuste de fonctionnalités que nous explorerons

25
00:02:07,730 --> 00:02:13,610
plus en détail dans le reste des leçons de ce cours. S'

26
00:02:13,610 --> 00:02:17,425
exprimer comme je l'ai dit est un framework minimaliste,

27
00:02:17,425 --> 00:02:21,020
et Express fournit également un moyen d'étendre et d'ajouter des

28
00:02:21,020 --> 00:02:25,465
fonctionnalités à Express via un middleware tiers.

29
00:02:25,465 --> 00:02:31,830
Cela étend les fonctionnalités d'Express et ajoute plus de fonctionnalités si nécessaire.

30
00:02:31,830 --> 00:02:38,750
Ainsi, vous pouvez créer votre serveur Web en utilisant autant de middleware tiers que

31
00:02:38,750 --> 00:02:46,070
requis pour répondre aux besoins de votre serveur Web que vous concevez.

32
00:02:46,070 --> 00:02:52,130
Nous examinerons quelques exemples de middleware tiers dans cette leçon et nous en

33
00:02:52,130 --> 00:02:58,170
explorerons davantage au fur et à mesure que nous examinerons le reste des leçons de ce cours.

34
00:02:58,170 --> 00:03:01,520
Pour utiliser Express dans votre projet, bien sûr,

35
00:03:01,520 --> 00:03:05,730
la première étape consiste à installer Express et comme Express est un module Node,

36
00:03:05,730 --> 00:03:10,940
nous l'installons en disant npm install express —save

37
00:03:10,940 --> 00:03:17,145
et cela installerait Express dans votre projet local.

38
00:03:17,145 --> 00:03:21,865
Nous verrons l'utilisation de cela dans l'exercice qui suit cette conférence.

39
00:03:21,865 --> 00:03:25,670
Parlons brièvement du middleware Express.

40
00:03:25,670 --> 00:03:28,425
Alors, quel est exactement le but du middleware ?

41
00:03:28,425 --> 00:03:32,510
Le middleware pris en charge par Express fournit beaucoup de

42
00:03:32,510 --> 00:03:38,370
fonctionnalités de plug-in qui seraient utilisées pour améliorer votre application Express, des

43
00:03:38,370 --> 00:03:41,165
fonctionnalités de plug-in comme par exemple, nous allons regarder

44
00:03:41,165 --> 00:03:45,500
un middleware appelé Morgan qui vous permet d'

45
00:03:45,500 --> 00:03:52,490
imprimer des informations de journal à l'écran sur le qui entrent dans votre serveur.

46
00:03:52,490 --> 00:03:56,494
De même, nous allons examiner un autre middleware appelé BodyParser,

47
00:03:56,494 --> 00:03:59,090
qui vous permet d'analyser le corps

48
00:03:59,090 --> 00:04:02,375
du message de requête HTTP entrant et d'en extraire

49
00:04:02,375 --> 00:04:06,450
des informations pour une utilisation dans votre application Express.

50
00:04:06,450 --> 00:04:11,395
Nous verrons leur utilisation dans l'exercice qui suit.

51
00:04:11,395 --> 00:04:18,455
Comme je l'ai mentionné, Morgan effectue la journalisation des informations sur la console côté serveur,

52
00:04:18,455 --> 00:04:21,645
des informations sur les requêtes entrantes.

53
00:04:21,645 --> 00:04:28,145
De même, ils peuvent servir des ressources Web statiques de notre serveur en utilisant la

54
00:04:28,145 --> 00:04:35,855
statique Express afin que cela serve des informations à partir d'un dossier dans notre projet Express,

55
00:04:35,855 --> 00:04:39,785
et en déclarant le projet, vous pouvez dire que je suis

56
00:04:39,785 --> 00:04:44,690
double nom de fichier de soulignement et double nom de répertoire de soulignement ou dirname qui

57
00:04:44,690 --> 00:04:48,410
vous donne le chemin complet pour le fichier ou le répertoire

58
00:04:48,410 --> 00:04:53,535
du module courant et vous me verrez utiliser cela dans l'exercice.

59
00:04:53,535 --> 00:04:55,640
Maintenant que nous avons un peu compris sur

60
00:04:55,640 --> 00:04:58,695
Express et le middleware qu'Express utilise,

61
00:04:58,695 --> 00:05:02,930
regardons un module Node

62
00:05:02,930 --> 00:05:06,499
parce que c'est la première fois que nous rencontrons des modules Node tiers,

63
00:05:06,499 --> 00:05:10,460
nous allons examiner quelques détails sur les modules Node tiers, donc si nous allons examiner

64
00:05:10,460 --> 00:05:15,000
package.json pour voir ce qui est contenu dans le fichier package.json,

65
00:05:15,000 --> 00:05:17,920
nous allons également examiner la gestion des versions sémantiques.

66
00:05:17,920 --> 00:05:22,550
Ainsi, lorsque vous spécifiez la version du package que vous utilisez,

67
00:05:22,550 --> 00:05:31,745
vous spécifiez toujours la version en spécifiant la version Major Version.Minor Version.Le patch.

68
00:05:31,745 --> 00:05:35,685
Donc, lorsque vous installez un paquet,

69
00:05:35,685 --> 00:05:39,230
il est toujours identifié par ces trois numéros,

70
00:05:39,230 --> 00:05:45,440
version majeure qui pourrait introduire des changements de rupture, ce qui signifie que si vous

71
00:05:45,440 --> 00:05:48,560
installez une version plus récente du paquet, il peut ne pas être

72
00:05:48,560 --> 00:05:51,920
complètement rétrocompatible avec les versions précédentes.

73
00:05:51,920 --> 00:05:55,370
Il peut introduire des changements de rupture dans lesquels vous devrez peut-être revenir en arrière et corriger

74
00:05:55,370 --> 00:05:59,905
le code que vous pourriez avoir écrit dans la version antérieure de votre projet.

75
00:05:59,905 --> 00:06:01,790
La version mineure introduit

76
00:06:01,790 --> 00:06:06,385
quelques modifications mineures à votre package et peut ne pas casser les modifications.

77
00:06:06,385 --> 00:06:14,800
Un patch serait une correction de bug qui est souvent émise puis un petit bug est découvert.

78
00:06:14,800 --> 00:06:21,005
Ainsi, les correctifs n'entraînent généralement aucune modification de rupture et vous pouvez facilement utiliser

79
00:06:21,005 --> 00:06:24,395
une version supérieure ou une version de correctif supérieure d'

80
00:06:24,395 --> 00:06:30,215
un package particulier que vous utilisez dans votre application Node.

81
00:06:30,215 --> 00:06:33,410
Lorsque vous installez un paquet, vous pouvez spécifier

82
00:06:33,410 --> 00:06:38,465
la version exacte du paquet à installer en disant npm install.

83
00:06:38,465 --> 00:06:40,460
Par exemple, si vous voulez installer la

84
00:06:40,460 --> 00:06:44,630
version 4.0.0 d'Express, vous pouvez dire express @4 .0.0.

85
00:06:44,630 --> 00:06:51,635
Vous spécifiez donc explicitement la version du package à installer.

86
00:06:51,635 --> 00:06:55,630
Si vous êtes d'accord avec une version de correctif de niveau supérieur,

87
00:06:55,630 --> 00:07:02,590
vous diriez npm install express @"~4.0.0 Si

88
00:07:02,590 --> 00:07:07,190
une version mineure supérieure d'un paquet est

89
00:07:07,190 --> 00:07:13,125
acceptable alors vous diriez @ et le nom du paquet.

90
00:07:13,125 --> 00:07:17,210
Maintenant, ce type d'informations est également enregistré dans le fichier package.json,

91
00:07:17,210 --> 00:07:20,070
nous allons rapidement visiter le paquet du fichier json

92
00:07:20,070 --> 00:07:23,750
où vous remarquerez que certaines de ces informations sont enregistrées.

93
00:07:23,750 --> 00:07:27,575
Maintenant, lorsque vous faites l'exercice qui suit cette conférence,

94
00:07:27,575 --> 00:07:31,845
vous verrez cela dans le fichier package.json.

95
00:07:31,845 --> 00:07:38,325
Ce sera le résultat de l'exercice qui suit cette conférence.

96
00:07:38,325 --> 00:07:43,230
Dans l'exercice, nous allons construire un serveur Web simple en utilisant Express.

97
00:07:43,230 --> 00:07:46,570
Maintenant, laissez-moi vous emmener à travers une visite rapide de package.json

98
00:07:46,570 --> 00:07:50,470
pour illustrer quelques informations dans package.json.

99
00:07:50,470 --> 00:07:56,530
Donc, dans le fichier package.json, vous remarquerez cette information ici,

100
00:07:56,530 --> 00:08:00,525
cette propriété pour notre json qui est stockée ici appelée dépendances.

101
00:08:00,525 --> 00:08:04,250
Les dépendances sont l'endroit où vous spécifierez

102
00:08:04,250 --> 00:08:07,400
quels modules tiers supplémentaires sur

103
00:08:07,400 --> 00:08:10,700
lesquels ce projet Node particulier dépend,

104
00:08:10,700 --> 00:08:15,230
donc comme vous pouvez le voir ici, nous disons que ce projet dépend d'Express

105
00:08:15,230 --> 00:08:20,540
et Morgan et notez en particulier comment cette information est spécifiée ici.

106
00:08:20,540 --> 00:08:25,715
Donc, c'est ^4.16.3 ce qui signifie que cela

107
00:08:25,715 --> 00:08:31,380
fonctionnera avec n'importe quelle version qui est 4.16.3 ou supérieure.

108
00:08:31,380 --> 00:08:35,725
Vous pouvez utiliser une version mineure de niveau supérieur et ce projet sera toujours d'

109
00:08:35,725 --> 00:08:40,970
accord avec elle et de même pour Morgan nous avons spécifié les informations ici.

110
00:08:40,970 --> 00:08:47,345
Donc, ces informations supplémentaires sont ajoutées dans le fichier package.json chaque fois que vous faites

111
00:08:47,345 --> 00:08:55,035
npm install et dites —save flag pour l'installation npm.

112
00:08:55,035 --> 00:09:02,040
Maintenant, vous remarquerez aussi que j'ai créé un fichier .gitignore ici et dans

113
00:09:02,040 --> 00:09:09,770
le fichier .gitignore, j'ai spécifié que git devrait ignorer le dossier des modules Node.

114
00:09:09,770 --> 00:09:13,275
Alors, qu'est-ce qui est exactement contenu dans le dossier Node modules ?

115
00:09:13,275 --> 00:09:20,704
Si vous installez des modules tiers dans votre application Node,

116
00:09:20,704 --> 00:09:26,270
tous ces modules tiers seront enregistrés dans le dossier Node modules ici,

117
00:09:26,270 --> 00:09:31,420
donc dans votre projet, vous verrez que le dossier Node modules a été créé ici.

118
00:09:31,420 --> 00:09:34,550
Et en regardant le dossier des modules de noeud, vous verrez

119
00:09:34,550 --> 00:09:38,495
tout un tas de paquets qui ont été installés.

120
00:09:38,495 --> 00:09:40,490
Maintenant, tout cela a été installé parce que vous

121
00:09:40,490 --> 00:09:43,250
installez Express et Express à son tour dépend

122
00:09:43,250 --> 00:09:50,550
d'autres paquets qui sont nécessaires, donc tous ceux sont également installés ici par défaut.

123
00:09:50,550 --> 00:09:55,850
En particulier, permettez-moi également d'attirer votre attention sur le paquet Express ici,

124
00:09:55,850 --> 00:09:59,045
donc si vous allez dans le paquet Express, vous verrez des

125
00:09:59,045 --> 00:10:02,470
informations supplémentaires stockées dans le paquet Express,

126
00:10:02,470 --> 00:10:06,435
donc la perspective de l'index aussi puisque Express lui-même est

127
00:10:06,435 --> 00:10:10,924
un module Node, vous verrez un

128
00:10:10,924 --> 00:10:14,015
fichier package.json dans Express aussi qui contient

129
00:10:14,015 --> 00:10:19,865
des informations supplémentaires qui, bien sûr, est très détaillé là,

130
00:10:19,865 --> 00:10:25,280
difficile à comprendre mais notez en particulier

131
00:10:25,280 --> 00:10:31,330
qu'Express lui-même dépend de nombreux autres modules Node ici.

132
00:10:31,330 --> 00:10:34,820
Et c'est la raison pour laquelle tous ces autres modules Node

133
00:10:34,820 --> 00:10:38,250
ont également été installés dans le dossier Node modules.

134
00:10:38,250 --> 00:10:40,160
Donc, lorsque vous installez Express,

135
00:10:40,160 --> 00:10:45,020
cela déclenchera immédiatement également toutes ses dépendances à installer car

136
00:10:45,020 --> 00:10:50,980
Express aura besoin de ces autres modules Node pour qu'il fasse son travail.

137
00:10:50,980 --> 00:10:54,590
En outre, dans Express, vous verrez également le fichier index.js.

138
00:10:54,590 --> 00:11:00,125
C' est donc le point de départ de notre module Express Node lui-même et

139
00:11:00,125 --> 00:11:05,690
notez en particulier que le fichier index.js dit simplement module.exports nécessite lib express.

140
00:11:05,690 --> 00:11:12,645
Donc, le code réel pour le module Express lui-même est dans ce projet lib,

141
00:11:12,645 --> 00:11:16,225
dossier lib ici et vous pouvez voir le détail.

142
00:11:16,225 --> 00:11:20,900
Donc, si vous êtes curieux de voir les détails d'Express lui-même, vous pouvez aller regarder

143
00:11:20,900 --> 00:11:25,560
là-dedans, mais encore une fois cela peut être un peu trop pour vous en ce moment.

144
00:11:25,560 --> 00:11:31,815
Pour le moment, il suffit d'accepter le fait qu'Express fera son travail comme prévu.

145
00:11:31,815 --> 00:11:38,450
Mais je pensais que ce serait une expérience intéressante de visiter le dossier du module Node

146
00:11:38,450 --> 00:11:45,435
pour regarder une structure d'un module Node tiers particulier dans un peu plus en détail.

147
00:11:45,435 --> 00:11:48,530
En outre, vous remarquerez qu'il y a un autre fichier

148
00:11:48,530 --> 00:11:52,010
ici appelé package-lock.json qui est installé.

149
00:11:52,010 --> 00:11:56,690
Maintenant, cela est en cours d'installation par les nouvelles versions de npm.

150
00:11:56,690 --> 00:12:01,190
Le fichier package-lock.json est automatiquement généré par

151
00:12:01,190 --> 00:12:06,259
npm qui stocke les informations sur

152
00:12:06,259 --> 00:12:10,265
l'arborescence exacte qui a été générée lors de l'installation

153
00:12:10,265 --> 00:12:14,630
d'autres modules Node et cela est très utile lorsque vous

154
00:12:14,630 --> 00:12:22,660
devez effectuer l'installation des modules Node à un autre emplacement.

155
00:12:22,660 --> 00:12:27,620
Par exemple, si vous téléchargez un référentiel Git et

156
00:12:27,620 --> 00:12:32,865
essayez de recréer ce projet sur un autre ordinateur,

157
00:12:32,865 --> 00:12:35,930
vous devez simplement taper npm install sur l'invite et

158
00:12:35,930 --> 00:12:39,050
cela demandera à votre application Node d'

159
00:12:39,050 --> 00:12:45,810
installer automatiquement tout ce qui est spécifié dans les dépendances ici pour vous.

160
00:12:45,810 --> 00:12:53,335
Lors de la création que package-lock.json stocke des informations supplémentaires qui

161
00:12:53,335 --> 00:13:01,805
sont utilisées par npm pour effectuer l'installation correcte de tous les modules npm requis.

162
00:13:01,805 --> 00:13:05,090
Maintenant, pour le moment, vous n'avez pas besoin de vous soucier des détails de

163
00:13:05,090 --> 00:13:08,290
ce qui se trouve dans le fichier package-lock.json.

164
00:13:08,290 --> 00:13:15,550
Avec cela, nous terminons cette leçon où nous avons examiné quelques détails sur Express.