1
00:00:03,930 --> 00:00:06,395
Lors de la conférence précédente,

2
00:00:06,395 --> 00:00:14,130
nous avons appris les éléments essentiels de la mise en réseau, y compris les détails du protocole HTTP.

3
00:00:14,130 --> 00:00:20,805
Maintenant, nous allons examiner comment Node peut être utilisé pour construire un serveur HTTP.

4
00:00:20,805 --> 00:00:28,420
C' est là que le module HTTP de base qui est intégré dans Node vient à notre aide.

5
00:00:28,420 --> 00:00:33,820
En outre, nous allons examiner quelques autres modules de nœud de base qui sont utiles pour

6
00:00:33,820 --> 00:00:40,390
construire un serveur HTTP à partir de l'utilisation de Node.

7
00:00:40,390 --> 00:00:42,730
Alors, comment pouvons-nous utiliser le module HTTP Node ?

8
00:00:42,730 --> 00:00:50,045
Comme je l'ai mentionné, le module HTTP est l'un des modules de base qui sont intégrés dans le nœud.

9
00:00:50,045 --> 00:00:53,275
Donc, il s'agit d'un module réseau de base qui prend en charge

10
00:00:53,275 --> 00:00:58,475
une base haute performance pour la pile HTTP.

11
00:00:58,475 --> 00:01:02,440
Donc, l'utilisation du module dans notre application Node

12
00:01:02,440 --> 00:01:06,430
nous oblige à importer le module dans notre application.

13
00:01:06,430 --> 00:01:12,190
Donc, c'est ce que nous faisons en disant const HTTP = require et,

14
00:01:12,190 --> 00:01:15,120
le nom du module HTTP là.

15
00:01:15,120 --> 00:01:17,260
Maintenant, une fois le module

16
00:01:17,260 --> 00:01:24,330
importé, ce module HTTP prend en charge une fonction CreateServer qui prend,

17
00:01:24,330 --> 00:01:29,500
comme paramètre, une fonction qui agit comme

18
00:01:29,500 --> 00:01:32,890
une fonction de rappel pour le module CreateServer et

19
00:01:32,890 --> 00:01:37,240
cette fonction a deux paramètres : requête et réponse.

20
00:01:37,240 --> 00:01:40,120
La requête est le message de demande qui vient

21
00:01:40,120 --> 00:01:44,380
du côté client et nous pouvons analyser le message de demande, puis extraire

22
00:01:44,380 --> 00:01:48,010
beaucoup d'informations du message de demande et l'utiliser pour prendre des

23
00:01:48,010 --> 00:01:51,850
décisions sur la façon dont nous construisons le message de réponse correspondant à cela.

24
00:01:51,850 --> 00:01:56,665
Le message de réponse est construit en utilisant le deuxième paramètre ici, le res,

25
00:01:56,665 --> 00:02:01,855
sur lequel nous pouvons construire les différentes valeurs d'en-tête pour

26
00:02:01,855 --> 00:02:08,830
notre message de réponse HTTP ainsi que le corps du message de réponse HTTP.

27
00:02:08,830 --> 00:02:10,120
Maintenant, pour démarrer le serveur,

28
00:02:10,120 --> 00:02:11,725
une fois que vous avez créé le serveur,

29
00:02:11,725 --> 00:02:16,030
alors vous diriez server.listen, puis fournissez le numéro de port

30
00:02:16,030 --> 00:02:20,420
et le nom d'hôte pour le serveur et qui va démarrer notre serveur.

31
00:02:20,420 --> 00:02:27,520
Nous examinerons quelques détails dans l'exercice d'exemples qui suit cette conférence.

32
00:02:27,520 --> 00:02:32,770
Comme je l'ai mentionné, les informations de message de demande entrante sont disponibles

33
00:02:32,770 --> 00:02:38,130
via le paramètre req que la fonction prend dans la méthode CreateServer.

34
00:02:38,130 --> 00:02:40,480
Donc, le req ou la demande,

35
00:02:40,480 --> 00:02:42,460
si vous voulez lui donner le nom complet,

36
00:02:42,460 --> 00:02:46,120
vous pouvez l'appeler comme une requête mais en général, nous avons trouvé que dans des

37
00:02:46,120 --> 00:02:50,425
exemples, nous avons utilisé req pour représenter le message de requête.

38
00:02:50,425 --> 00:02:57,462
Il prend en charge les propriétés de l'objet Javascript comme

39
00:02:57,462 --> 00:03:02,225
l'en-tête, le corps et aussi diverses informations qui peuvent être extraites,

40
00:03:02,225 --> 00:03:09,350
l'URL et la méthode qui a été demandée par ce site client.

41
00:03:09,350 --> 00:03:13,240
Et, en réponse, vous construisez la réponse en utilisant

42
00:03:13,240 --> 00:03:18,424
l'objet Javascript de réponse qui prend en charge cette fonction setHeader,

43
00:03:18,424 --> 00:03:23,570
la fonction StatusCode qui peut être définie sur le code d'état du message de réponse.

44
00:03:23,570 --> 00:03:26,235
Et puis vous écririez le message disant

45
00:03:26,235 --> 00:03:29,440
res.write et vous termineriez le message en disant

46
00:03:29,440 --> 00:03:35,785
res.end et cela prend la dernière partie du corps pour le message.

47
00:03:35,785 --> 00:03:40,225
Le corps peut être du texte standard ou du HTML ou

48
00:03:40,225 --> 00:03:47,369
toute autre information que vous souhaitez inclure dans le corps de ce message de réponse.

49
00:03:47,369 --> 00:03:49,780
Mais une fois que le res.end est appelé,

50
00:03:49,780 --> 00:03:54,460
la réponse est renvoyée au client à partir du serveur HTTP.

51
00:03:54,460 --> 00:03:59,185
Deux autres modules de base qui nous sont utiles

52
00:03:59,185 --> 00:04:04,295
lorsque nous construisons le serveur HTTP Node est le module de chemin de nœud.

53
00:04:04,295 --> 00:04:09,145
Le module chemin d'accès nous permet de spécifier le chemin d'accès à un fichier, puis

54
00:04:09,145 --> 00:04:14,375
d'examiner si le fichier existe ou d'examiner plus de détails sur un fichier.

55
00:04:14,375 --> 00:04:17,620
Par exemple, l'extension du fichier, le

56
00:04:17,620 --> 00:04:19,185
nom et ainsi de suite.

57
00:04:19,185 --> 00:04:22,000
Ainsi, le module de chemin peut être utilisé dans

58
00:04:22,000 --> 00:04:26,360
notre application en exigeant le module de chemin comme indiqué ici.

59
00:04:26,360 --> 00:04:28,360
Et puis, cela prend en charge les méthodes,

60
00:04:28,360 --> 00:04:29,990
comme par exemple, path.resolve,

61
00:04:29,990 --> 00:04:33,940
qui convertira un chemin relatif en

62
00:04:33,940 --> 00:04:38,620
un chemin absolu que le chemin entier vers le fichier.

63
00:04:38,620 --> 00:04:43,930
Vous pouvez également vérifier le nom de l'extension du fichier en appelant la

64
00:04:43,930 --> 00:04:47,830
fonction path.extname et fournir le chemin d'accès du fichier qui

65
00:04:47,830 --> 00:04:52,640
examinera l'extension du nom de fichier.

66
00:04:52,640 --> 00:04:55,870
De même, le module de système de fichiers,

67
00:04:55,870 --> 00:04:57,970
encore une fois un module de base dans Node,

68
00:04:57,970 --> 00:05:00,670
nous permettra de lire et d'écrire

69
00:05:00,670 --> 00:05:04,805
des fichiers qui existent dans le système de fichiers local sur l'ordinateur.

70
00:05:04,805 --> 00:05:08,725
Ainsi, les modules de système de fichiers peuvent être utilisés dans

71
00:05:08,725 --> 00:05:13,480
notre application Node en l'exigeant comme indiqué ici.

72
00:05:13,480 --> 00:05:16,765
Et puis, ces modules de système de fichiers prennent en charge de nombreuses méthodes,

73
00:05:16,765 --> 00:05:21,460
y compris une méthode pour vérifier si le fichier existe dans le système de fichiers local ou non.

74
00:05:21,460 --> 00:05:24,190
Donc, le fs.exists prendra

75
00:05:24,190 --> 00:05:28,165
le FilePath comme premier paramètre et le second paramètre est

76
00:05:28,165 --> 00:05:35,530
une fonction de rappel qui reviendra avec un paramètre que nous pouvons nommer tel qu'il existe.

77
00:05:35,530 --> 00:05:38,410
Ce paramètre, existe, sera true si le fichier

78
00:05:38,410 --> 00:05:43,595
existe et sera false si le fichier n'existe pas dans le système de fichiers local.

79
00:05:43,595 --> 00:05:50,390
De même, vous pouvez lire à partir du fichier en créant un flux de lecture en fonction du chemin d'accès du fichier.

80
00:05:50,390 --> 00:05:53,585
Ainsi, vous pouvez dire fs.CreateReadStream et

81
00:05:53,585 --> 00:05:58,240
le FilePath et cela peut être transmis au message de réponse.

82
00:05:58,240 --> 00:06:01,175
Ainsi, le fichier sera lu à partir du fichier

83
00:06:01,175 --> 00:06:05,290
donné par le fichier FilePath, puis le contenu sera mis

84
00:06:05,290 --> 00:06:13,220
dans le corps du message de réponse en appelant une fonction chaînée comme indiqué ici.

85
00:06:13,220 --> 00:06:17,920
Donc, ce sont quelques exemples de certains modules de nœud de base qui seront très

86
00:06:17,920 --> 00:06:23,710
utiles lorsque nous construisons un serveur HTTP en utilisant Node.

87
00:06:23,710 --> 00:06:29,223
Maintenant, que nous comprenons quelques détails sur le serveur HTTP et comment il peut être construit,

88
00:06:29,223 --> 00:06:30,690
passons à l'exercice,

89
00:06:30,690 --> 00:06:36,880
où nous allons construire un simple serveur HTTP Node qui va d'abord fournir

90
00:06:36,880 --> 00:06:41,950
des informations de base et ensuite, nous allons servir des fichiers

91
00:06:41,950 --> 00:06:48,170
qui existent dans un dossier public dans notre projet.