﻿1
00:00:01,450 --> 00:00:05,930
‫Cette vidéo est encore une autre très excitante, car

2
00:00:05,930 --> 00:00:08,970
‫nous allons maintenant créer notre tout

3
00:00:08,970 --> 00:00:13,750
‫premier vrai serveur Web capable d'accepter les demandes et de

4
00:00:13,750 --> 00:00:15,973
‫renvoyer les réponses.

5
00:00:17,930 --> 00:00:22,930
‫Et la première étape consiste à inclure encore un autre package ou

6
00:00:22,950 --> 00:00:24,223
‫un autre

7
00:00:27,470 --> 00:00:29,533
‫module, et celui-ci s'appelle http.

8
00:00:33,530 --> 00:00:36,280
‫Nous utilisons donc à nouveau la

9
00:00:36,280 --> 00:00:41,280
‫fonction require, puis nous demandons le module http intégré, et c'est celui

10
00:00:41,380 --> 00:00:45,260
‫qui nous donne des capacités de mise en réseau

11
00:00:45,260 --> 00:00:48,423
‫telles que la construction d'un serveur http.

12
00:00:50,264 --> 00:00:52,980
‫Maintenant, commentons ce code ici

13
00:00:52,980 --> 00:00:55,863
‫afin qu'il ne nous gêne pas.

14
00:00:59,980 --> 00:01:04,133
‫Alors créons une sorte de diviseur ici.

15
00:01:07,520 --> 00:01:09,723
‫Donc celui-ci est

16
00:01:12,730 --> 00:01:17,730
‫classé, et celui-ci est pour le serveur.

17
00:01:18,030 --> 00:01:20,930
‫Et maintenant, pour construire notre serveur, nous

18
00:01:20,930 --> 00:01:22,900
‫devons faire deux choses.

19
00:01:22,900 --> 00:01:24,980
‫Premièrement, nous créons un serveur,

20
00:01:24,980 --> 00:01:27,820
‫puis deuxièmement, nous démarrons le serveur afin

21
00:01:27,820 --> 00:01:31,033
‫que nous puissions réellement écouter les requêtes entrantes.

22
00:01:32,840 --> 00:01:37,680
‫Nous utilisons notre module http et comme avant, nous avons utilisé une

23
00:01:37,680 --> 00:01:40,760
‫méthode qui se trouve sur cet objet.

24
00:01:40,760 --> 00:01:43,283
‫Donc, tout comme nous l'avons fait avec le module fs.

25
00:01:44,120 --> 00:01:46,530
‫Alors, http. createServer et

26
00:01:50,440 --> 00:01:54,000
‫create server accepteront une fonction de rappel, qui

27
00:01:54,000 --> 00:01:56,130
‫sera déclenchée chaque fois qu'une

28
00:01:56,130 --> 00:01:58,870
‫nouvelle requête arrivera sur notre serveur.

29
00:01:58,870 --> 00:02:01,240
‫Et cette fonction de rappel

30
00:02:01,240 --> 00:02:05,080
‫a accès à deux variables très importantes et fondamentales.

31
00:02:05,080 --> 00:02:08,763
‫C'est la variable de requête et une variable de réponse.

32
00:02:09,850 --> 00:02:12,373
‫Et un peu plus à leur sujet dans une seconde.

33
00:02:13,670 --> 00:02:15,293
‫Donc, demande et

34
00:02:18,510 --> 00:02:20,630
‫réponse, donc tout ce que nous

35
00:02:20,630 --> 00:02:23,890
‫voulons faire maintenant est de renvoyer une réponse au

36
00:02:23,890 --> 00:02:26,420
‫client et nous le faisons avec res. qui est cet objet ici, cet objet réponse, . fin, puis « Bonjour

37
00:02:26,420 --> 00:02:30,763
‫du serveur ! '. fin, puis « Bonjour du serveur ! '.

38
00:02:32,690 --> 00:02:33,547
‫C'est donc la réponse que nous allons renvoyer.

39
00:02:33,547 --> 00:02:36,850
‫Encore une fois, chaque

40
00:02:37,780 --> 00:02:42,740
‫fois qu'une nouvelle demande arrive sur notre serveur, cette fonction de rappel ici sera appelée,

41
00:02:42,740 --> 00:02:46,720
‫et la fonction de rappel aura accès à l'objet de demande qui

42
00:02:46,720 --> 00:02:49,910
‫contient toutes sortes de choses comme l'URL de la

43
00:02:49,910 --> 00:02:51,998
‫demande et un tas d'autres choses.

44
00:02:51,998 --> 00:02:55,780
‫D'un autre côté, cet objet de

45
00:02:55,780 --> 00:03:00,680
‫réponse nous donne ici beaucoup d'outils pour traiter

46
00:03:00,680 --> 00:03:03,340
‫la réponse, donc pour

47
00:03:03,340 --> 00:03:05,880
‫envoyer la réponse.

48
00:03:05,880 --> 00:03:07,820
‫Le plus simple est. end, et cette fin ici, le

49
00:03:07,820 --> 00:03:10,860
‫nom de cette méthode aura un peu plus de sens

50
00:03:10,860 --> 00:03:14,200
‫un peu plus tard.

51
00:03:14,200 --> 00:03:18,200
‫Pour l'instant, sachez simplement que c'est le moyen le plus simple de renvoyer

52
00:03:18,200 --> 00:03:21,060
‫une réponse très, très simple dans ce cas.

53
00:03:21,060 --> 00:03:24,270
‫C'est donc vraiment tout ce que nous

54
00:03:24,270 --> 00:03:28,493
‫avons à faire pour renvoyer une réponse en texte brut

55
00:03:29,630 --> 00:03:31,840
‫lorsqu'une certaine demande arrive.

56
00:03:31,840 --> 00:03:34,810
‫Maintenant, si vous êtes un peu confus au sujet

57
00:03:34,810 --> 00:03:36,863
‫de tous ces termes, comme

58
00:03:37,730 --> 00:03:41,060
‫une demande entrante ou l'envoi de réponses, ou même sur

59
00:03:41,060 --> 00:03:44,950
‫la raison pour laquelle nous avons réellement des demandes et des réponses

60
00:03:44,950 --> 00:03:48,220
‫ici sur notre serveur, ne vous inquiétez pas, car nous

61
00:03:48,220 --> 00:03:51,450
‫avons toute une conférence à venir sur le fonctionnement du

62
00:03:51,450 --> 00:03:54,000
‫Web, où nous allons parler du modèle client-serveur

63
00:03:54,000 --> 00:03:56,660
‫et du fonctionnement des applications réseau en général.

64
00:03:56,660 --> 00:04:00,430
‫Encore une fois, dans cette section, mon objectif principal

65
00:04:00,430 --> 00:04:04,260
‫est de vous montrer toutes les choses et de vraiment

66
00:04:04,260 --> 00:04:06,880
‫les faire fonctionner, puis la théorie

67
00:04:06,880 --> 00:04:09,330
‫suivra un peu plus tard.

68
00:04:09,330 --> 00:04:11,260
‫C'est donc la philosophie que j'ai

69
00:04:11,260 --> 00:04:13,793
‫utilisée dans tous mes autres cours, et cela

70
00:04:14,950 --> 00:04:16,610
‫fonctionne très bien, et je

71
00:04:16,610 --> 00:04:20,450
‫pense donc que c'est une bonne chose de le faire ici aussi.

72
00:04:20,450 --> 00:04:22,410
‫Quoi qu'il en soit, la

73
00:04:22,410 --> 00:04:24,390
‫création d'un serveur était la première partie,

74
00:04:24,390 --> 00:04:28,100
‫et maintenant la deuxième partie consiste à écouter les demandes entrantes du client.

75
00:04:28,100 --> 00:04:30,800
‫Maintenant, pour ce faire, nous devons en fait enregistrer

76
00:04:30,800 --> 00:04:33,633
‫le résultat de ce createServer ici dans une nouvelle variable.

77
00:04:34,880 --> 00:04:39,690
‫Donc, nous l'appelons généralement serveur, donc serveur est

78
00:04:39,690 --> 00:04:44,203
‫le résultat de cette méthode createServer ici.

79
00:04:45,620 --> 00:04:47,803
‫Il va donc créer un

80
00:04:49,840 --> 00:04:54,840
‫serveur, et maintenant nous utilisons ce serveur et sur celui-ci nous pouvons appeler listen.

81
00:04:55,720 --> 00:04:59,580
‫Listen accepte quelques paramètres, le premier est le port,

82
00:05:00,730 --> 00:05:03,620
‫et généralement le port que

83
00:05:03,620 --> 00:05:07,250
‫nous utilisons dans Note est, par exemple, 8000.

84
00:05:07,250 --> 00:05:10,060
‫Mais vous verrez d'autres nombres comme

85
00:05:10,060 --> 00:05:13,660
‫3000, ou 80, ou quelque chose comme ça.

86
00:05:13,660 --> 00:05:16,270
‫Et au cas où vous vous demanderiez ce qu'est

87
00:05:16,270 --> 00:05:19,850
‫réellement un port, eh bien, cela n'a pas vraiment d'importance, mais tout

88
00:05:19,850 --> 00:05:22,890
‫ce que vous devez savoir, c'est qu'il s'agit essentiellement d'une

89
00:05:22,890 --> 00:05:24,870
‫sous-adresse sur un certain hôte,

90
00:05:24,870 --> 00:05:27,250
‫et l'hôte est ce que nous spécifions ensuite.

91
00:05:27,250 --> 00:05:30,540
‫En fait, nous n'avons pas besoin de le spécifier, puis

92
00:05:30,540 --> 00:05:33,453
‫nous utiliserons par défaut un hôte local, mais

93
00:05:34,400 --> 00:05:36,410
‫nous pouvons en fait le

94
00:05:36,410 --> 00:05:39,000
‫spécifier également explicitement à un hôte local.

95
00:05:39,000 --> 00:05:42,140
‫Ainsi, l'hôte local a généralement cette adresse par défaut,

96
00:05:42,140 --> 00:05:44,680
‫et l'hôte local signifie simplement l'ordinateur actuel.

97
00:05:44,680 --> 00:05:49,680
‫Donc, l'ordinateur sur lequel le programme s'exécute actuellement.

98
00:05:50,190 --> 00:05:53,390
‫Et encore une fois, il

99
00:05:53,390 --> 00:05:57,920
‫s'agit de l'adresse IP standard de cet hôte local.

100
00:05:57,920 --> 00:06:00,680
‫Celui-ci commencera donc à écouter les demandes entrantes.

101
00:06:00,680 --> 00:06:02,133
‫Donc, en gros, démarrer le serveur.

102
00:06:03,420 --> 00:06:07,830
‫Et comme argument facultatif, nous pouvons également passer une

103
00:06:07,830 --> 00:06:10,233
‫fonction de rappel,

104
00:06:11,095 --> 00:06:13,550
‫qui sera exécutée dès que

105
00:06:13,550 --> 00:06:16,360
‫le serveur commencera à écouter.

106
00:06:16,360 --> 00:06:19,110
‫Donc ici, il est assez courant d'afficher simplement un message indiquant

107
00:06:19,110 --> 00:06:20,893
‫que le serveur a été démarré.

108
00:06:22,060 --> 00:06:27,060
‫Disons donc écouter les requêtes sur le port 8000.

109
00:06:27,470 --> 00:06:30,350
‫Et maintenant, tout ce que nous avons à faire

110
00:06:30,350 --> 00:06:33,947
‫est d'aller à cette URL sur notre ordinateur sur le port 8000.

111
00:06:40,037 --> 00:06:42,830
‫Maintenant, avant de pouvoir le

112
00:06:42,830 --> 00:06:47,320
‫faire, bien sûr, nous devons exécuter l'application Note, donc

113
00:06:47,320 --> 00:06:48,860
‫note index. js, et ici nous avons notre serrure.

114
00:06:48,860 --> 00:06:51,930
‫Donc écoute de la requête sur le port 8000.

115
00:06:51,930 --> 00:06:56,560
‫Et vous voyez que l'application

116
00:06:56,560 --> 00:06:59,803
‫continue de fonctionner, donc avant elle s'arrêtait toujours

117
00:07:00,680 --> 00:07:03,590
‫tout de suite, alors elle a fait son

118
00:07:03,590 --> 00:07:06,090
‫travail, puis elle a quitté l'application.

119
00:07:06,090 --> 00:07:08,270
‫Pour le moment, ça ne fait pas ça.

120
00:07:08,270 --> 00:07:10,500
‫C'est à cause de quelque chose appelé

121
00:07:10,500 --> 00:07:12,890
‫la boucle d'événement dont nous allons parler un

122
00:07:12,890 --> 00:07:15,770
‫peu plus tard dans une autre section de ce cours.

123
00:07:15,770 --> 00:07:17,920
‫Mais, quelles que soient les raisons techniques à

124
00:07:17,920 --> 00:07:20,270
‫cela, il est évident que l'application ne peut pas vraiment

125
00:07:20,270 --> 00:07:23,740
‫se fermer tout de suite, car nous ne pourrions alors plus recevoir de nouvelles demandes.

126
00:07:23,740 --> 00:07:27,600
‫Ainsi, lorsque nous démarrons un serveur, Note ne

127
00:07:27,600 --> 00:07:31,513
‫peut pas simplement quitter le processus, alors quittez le

128
00:07:32,550 --> 00:07:34,290
‫programme, car le

129
00:07:34,290 --> 00:07:37,410
‫but est d'attendre que les demandes arrivent.

130
00:07:37,410 --> 00:07:40,790
‫C'est donc ce que je vais vous montrer ensuite.

131
00:07:40,790 --> 00:07:43,523
‫Pour l'instant, ouvrons simplement l'adresse IP sur le port 8000.

132
00:07:46,050 --> 00:07:48,650
‫Et pour cela, nous utilisons les deux points, puis le numéro de port.

133
00:07:48,650 --> 00:07:53,650
‫Il s'agit donc de l'hôte, qui est l'hôte local, les

134
00:07:55,450 --> 00:07:59,850
‫deux points, puis le numéro de port.

135
00:07:59,850 --> 00:08:02,860
‫Appuyez sur Entrée, et c'est parti.

136
00:08:02,860 --> 00:08:05,083
‫Alors, bonjour du serveur !

137
00:08:06,090 --> 00:08:08,340
‫Et donc oui, ça marche vraiment.

138
00:08:08,340 --> 00:08:11,320
‫Vous avez un vrai serveur Web exécuté sur votre

139
00:08:11,320 --> 00:08:13,370
‫ordinateur en utilisant NoteJS, félicitations.

140
00:08:13,370 --> 00:08:17,350
‫Revenons donc ici et, encore une fois, analysons ce qui s'est passé ici.

141
00:08:17,350 --> 00:08:20,880
‫Nous avons créé notre serveur à l'aide de

142
00:08:20,880 --> 00:08:25,880
‫createServer et transmis une fonction de rappel qui est exécutée chaque fois

143
00:08:27,220 --> 00:08:30,980
‫qu'une nouvelle requête arrive sur le serveur, puis nous

144
00:08:30,980 --> 00:08:33,260
‫avons commencé à écouter

145
00:08:33,260 --> 00:08:36,620
‫les requêtes entrantes sur l'adresse IP de

146
00:08:36,620 --> 00:08:39,820
‫l'hôte local, puis sur le port 8000.

147
00:08:39,820 --> 00:08:43,577
‫Une fois que tout cela était en marche, nous avons en fait fait la

148
00:08:43,577 --> 00:08:45,440
‫demande en cliquant sur cette URL.

149
00:08:46,700 --> 00:08:50,840
‫Donc, fondamentalement, en frappant l'hôte local sur le port 8000.

150
00:08:50,840 --> 00:08:52,840
‫Ainsi, sous le capot

151
00:08:52,840 --> 00:08:56,620
‫de NoteJS, un événement a été déclenché, ce

152
00:08:56,620 --> 00:09:01,460
‫dont, encore une fois, nous allons parler un peu plus tard.

153
00:09:01,460 --> 00:09:03,230
‫Mais ce qui compte ici, c'est que cet événement a

154
00:09:03,230 --> 00:09:05,260
‫ensuite fait en sorte que cette fonction de rappel a été appelée.

155
00:09:05,260 --> 00:09:08,320
‫Et finalement à la suite

156
00:09:08,320 --> 00:09:12,633
‫de cela, nous avons ensuite récupéré cette chaîne.

157
00:09:14,060 --> 00:09:17,070
‫Juste par curiosité, jetons un coup d'œil

158
00:09:17,070 --> 00:09:19,463
‫à l'objet de requête.

159
00:09:22,590 --> 00:09:26,030
‫Nous devons fermer le serveur et le

160
00:09:26,030 --> 00:09:29,633
‫redémarrer car nous avons apporté quelques modifications au code.

161
00:09:32,760 --> 00:09:37,340
‫Et remarquez comment cette fois j'ai utilisé le contrôle C

162
00:09:37,340 --> 00:09:39,340
‫pour quitter l'application.

163
00:09:40,550 --> 00:09:44,530
‫Alors rappelez-vous qu'au début lorsque nous utilisions le

164
00:09:44,530 --> 00:09:47,090
‫ripple, j'utilisais le contrôle D

165
00:09:47,090 --> 00:09:49,430
‫pour le quitter.

166
00:09:49,430 --> 00:09:51,100
‫Mais maintenant, lorsque nous

167
00:09:51,100 --> 00:09:54,033
‫avons un programme Note exécuté comme celui-ci, nous devons

168
00:09:55,270 --> 00:09:58,700
‫utiliser le contrôle C pour rompre essentiellement avec ce programme.

169
00:09:58,700 --> 00:10:02,060
‫C'est pourquoi ici j'ai utilisé le contrôle C et tout

170
00:10:02,060 --> 00:10:03,253
‫au long du

171
00:10:05,420 --> 00:10:08,200
‫reste du cours, lorsque je veux terminer un programme,

172
00:10:08,200 --> 00:10:10,102
‫j'utiliserai toujours le contrôle C.

173
00:10:10,102 --> 00:10:12,300
‫Donc, c'est le contrôle et non la commande C, encore une fois.

174
00:10:12,300 --> 00:10:15,090
‫Même sur un Mac, vous devez utiliser le contrôle C.

175
00:10:15,090 --> 00:10:18,500
‫Faisons cela à nouveau, nous obtenons la même réponse, mais maintenant

176
00:10:18,500 --> 00:10:21,373
‫nous devrions avoir quelque chose dans la console.

177
00:10:23,810 --> 00:10:27,920
‫Voici donc l'objet de requête, et comme je l'ai mentionné, il

178
00:10:27,920 --> 00:10:30,990
‫y a une tonne de choses ici.

179
00:10:30,990 --> 00:10:35,060
‫Tu le vois?

180
00:10:35,060 --> 00:10:38,580
‫Tout cela, il ne rentre même pas dans la console.

181
00:10:38,580 --> 00:10:39,910
‫Je pense que

182
00:10:39,910 --> 00:10:44,910
‫je ne peux même pas vous montrer toutes les données intéressantes qui s'y trouvent.

183
00:10:47,366 --> 00:10:49,610
‫En fait, ici, nous avons des en-têtes, nous avons

184
00:10:51,865 --> 00:10:53,633
‫donc l'hôte et ici, nous en avons...

185
00:10:56,670 --> 00:10:59,590
‫Encore une fois, nous avons

186
00:10:59,590 --> 00:11:04,590
‫donc des en-têtes http, ce dont nous allons parler,

187
00:11:04,680 --> 00:11:07,900
‫je pense, dans la prochaine vidéo.

188
00:11:07,900 --> 00:11:09,870
‫Quoi qu'il en soit, ce qui compte ici,

189
00:11:09,870 --> 00:11:11,763
‫c'est que nous ayons vraiment accès

190
00:11:13,970 --> 00:11:17,430
‫à toutes sortes de choses lorsque nous traitons la demande et envoyons la réponse.

191
00:11:17,430 --> 00:11:20,800
‫Peu importe ici, débarrassons-nous en

192
00:11:20,800 --> 00:11:25,033
‫fait de cela, sauvegardons-le, puis arrêtons-le et redémarrons-le.

193
00:11:26,470 --> 00:11:29,193
‫Et maintenant, juste pour terminer cette

194
00:11:30,670 --> 00:11:35,320
‫vidéo, je veux vous montrer ce que nous allons réellement construire

195
00:11:35,320 --> 00:11:37,890
‫dans les deux prochaines conférences

196
00:11:37,890 --> 00:11:40,470
‫jusqu'à la fin de cette section.

197
00:11:40,470 --> 00:11:42,280
‫C'est donc cette petite application amusante appelée la ferme de nœuds.

198
00:11:43,150 --> 00:11:45,870
‫Nous avons quelques produits ici, et nous

199
00:11:45,870 --> 00:11:50,870
‫avons construit tout cela ici à l'aide d'un modèle html très simple, et

200
00:11:52,592 --> 00:11:56,240
‫vous pouvez ensuite cliquer sur le lien et cela

201
00:11:56,240 --> 00:11:57,940
‫vous mènera essentiellement

202
00:11:57,940 --> 00:12:00,747
‫à la page de détail de ce

203
00:12:00,747 --> 00:12:03,310
‫produit, dans ce cas les avocats.

204
00:12:03,310 --> 00:12:06,670
‫Il y a un tas de données ici,

205
00:12:06,670 --> 00:12:10,500
‫un bouton qui ne fait rien, et puis nous

206
00:12:10,500 --> 00:12:13,030
‫pouvons revenir à la page.

207
00:12:13,030 --> 00:12:15,860
‫Donc, les avocats, puis nous avons le fromage

208
00:12:15,860 --> 00:12:18,023
‫par exemple, et il a ensuite,

209
00:12:18,870 --> 00:12:22,180
‫bien sûr, des données différentes pour chacun de ces produits.

210
00:12:22,180 --> 00:12:24,550
‫Il a donc ce joli

211
00:12:24,550 --> 00:12:28,273
‫design frais et fou pour le faire ressortir

212
00:12:28,273 --> 00:12:33,273
‫un peu, et oui, je pense que c'est un petit projet amusant.

213
00:12:33,540 --> 00:12:36,900
‫Et nous allons commencer à le construire en

214
00:12:36,900 --> 00:12:40,100
‫fait, juste dans la prochaine vidéo.

