1
00:00:00,000 --> 00:00:04,740
[MUSIQUE]

2
00:00:04,740 --> 00:00:09,065
Dans cette leçon, nous allons apprendre comment écrire des notifications simples.

3
00:00:09,065 --> 00:00:11,454
Nous apprendrons également sur les modules

4
00:00:11,454 --> 00:00:16,885
Node et comment les modules Node nous permettent d'organiser nos applications en plusieurs fichiers.

5
00:00:16,885 --> 00:00:20,550
Nous apprendrons également sur les différents types de modules Node et

6
00:00:20,550 --> 00:00:26,450
comment nous pouvons importer des modules Node dans nos fichiers de notre application Node et

7
00:00:26,450 --> 00:00:29,260
les utiliser dans notre application.

8
00:00:29,260 --> 00:00:34,640
Tout d'abord, apprenons à propos des modules Node un peu plus en détail dans cette conférence.

9
00:00:36,720 --> 00:00:39,320
JavaScript, quand il est conçu pour la première fois

10
00:00:39,320 --> 00:00:43,900
était destiné à être un langage de script à utiliser dans le navigateur.

11
00:00:43,900 --> 00:00:49,510
Donc, le petit royaume dans lequel il était censé être utilisé est le navigateur.

12
00:00:49,510 --> 00:00:54,695
Maintenant, comme vous le comprenez à partir de cette spécialisation, JavaScript est allé

13
00:00:54,695 --> 00:01:00,822
bien au-delà de son intention initiale, et est maintenant utilisé pour écrire des applications. À

14
00:01:00,822 --> 00:01:04,688
la fois pour être exécuté en utilisant des frameworks dans le navigateur, et

15
00:01:04,688 --> 00:01:09,880
aussi pour exécuter des applications côté serveur, comme nous le verrons dans ce cours.

16
00:01:11,020 --> 00:01:16,100
JavaScript à l'origine n'a jamais été conçu avec des bibliothèques communes.

17
00:01:16,100 --> 00:01:20,907
Si vous regardez les langages de programmation standard comme C, C ++, Java, etc.,

18
00:01:20,907 --> 00:01:24,374
ils ont tous des bibliothèques standard qui vous permettent d'accéder

19
00:01:24,374 --> 00:01:26,730
au matériel sous-jacent.

20
00:01:26,730 --> 00:01:32,170
Fournissez également une manière structurée d'organiser l'application en

21
00:01:32,170 --> 00:01:36,880
plusieurs fichiers, puis de les combiner ensemble lorsque vous créez une application.

22
00:01:36,880 --> 00:01:41,580
JavaScript n'a jamais eu de ce support quand il a commencé.

23
00:01:41,580 --> 00:01:45,850
Parce que, comme nous le comprenons, JavaScript n'a pas été conçu

24
00:01:45,850 --> 00:01:48,330
pour le but pour lequel il est utilisé aujourd'hui.

25
00:01:49,420 --> 00:01:50,500
Mais bien sûr,

26
00:01:50,500 --> 00:01:55,710
les gens ont compris les difficultés lorsque vous avez besoin d'étendre JavaScript

27
00:01:55,710 --> 00:02:01,340
au-delà d'un seul fichier qui est utilisé comme un langage de script pour le navigateur.

28
00:02:01,340 --> 00:02:04,750
Maintenant, si vous avez une très grande application JavaScript,

29
00:02:04,750 --> 00:02:10,020
il devient fastidieux d'écrire le code entier dans un seul fichier.

30
00:02:10,020 --> 00:02:14,890
Et évidemment, vous voulez que les résultats soient en mesure de diviser votre application en

31
00:02:14,890 --> 00:02:16,830
plusieurs faits.

32
00:02:16,830 --> 00:02:21,760
Maintenant, contrairement aux langages de programmation traditionnels, JavaScript n'a jamais eu un moyen

33
00:02:21,760 --> 00:02:26,945
de distribuer le code dans plusieurs fichiers, puis de les combiner ensemble.

34
00:02:26,945 --> 00:02:32,095
C' est donc là que l'API CommonJS est venue pour combler cette

35
00:02:32,095 --> 00:02:35,859
lacune qui comble les besoins d'une application commune.

36
00:02:35,859 --> 00:02:42,832
Et ce format CommonJS définit un format de module qui peut être utilisé pour

37
00:02:42,832 --> 00:02:47,282
diviser votre application JavaScript en plusieurs fichiers.

38
00:02:47,282 --> 00:02:51,151
Et Node adopte ce format CommonJS pour

39
00:02:51,151 --> 00:02:55,349
organiser notre application JavaScript en plusieurs fichiers.

40
00:02:55,349 --> 00:02:59,861
Et dans JavaScript, avec le format CommonJS,

41
00:02:59,861 --> 00:03:03,891
chaque fichier devient son propre module Node.

42
00:03:03,891 --> 00:03:09,841
Nous allons donc en apprendre un peu plus sur les modules Node dans le reste de cette conférence.

43
00:03:09,841 --> 00:03:11,931
Donc, comme je viens de le mentionner,

44
00:03:11,931 --> 00:03:16,280
chaque fichier dans une application Node devient son propre module Node.

45
00:03:16,280 --> 00:03:22,290
Ainsi, le fichier ou le fichier JavaScript définit la limite d'un module Node.

46
00:03:22,290 --> 00:03:26,160
Ainsi, dans ce fichier, la spécification CommonJS

47
00:03:26,160 --> 00:03:30,770
fournit une variable appelée la variable de module qui est un objet JavaScript.

48
00:03:30,770 --> 00:03:36,070
Et cela vous donne accès à la définition actuelle du module dans un fichier.

49
00:03:36,070 --> 00:03:41,020
Et sur cet objet module, vous avez la

50
00:03:41,020 --> 00:03:45,120
propriété module.exports qui détermine l'exportation à partir du module courant.

51
00:03:45,120 --> 00:03:49,010
Ainsi, lorsque vous affectez quelque chose à la propriété module.exports,

52
00:03:49,010 --> 00:03:54,100
cela devient la valeur exportée du module courant.

53
00:03:54,100 --> 00:03:59,070
Ainsi, lorsque ce module est importé dans un autre fichier

54
00:03:59,070 --> 00:04:03,130
de notre application Node, alors tout ce qui est exporté à partir de ce module

55
00:04:03,130 --> 00:04:06,860
devient disponible dans la deuxième application.

56
00:04:06,860 --> 00:04:09,330
Nous allons regarder un exemple dans un court moment.

57
00:04:09,330 --> 00:04:13,080
Lorsque vous devez importer un module dans un autre module,

58
00:04:13,080 --> 00:04:17,700
c'est là que la fonction require est utilisée pour importer le module.

59
00:04:17,700 --> 00:04:23,220
Donc, comme nous le remarquerons dans un court moment, la fonction require est utilisée

60
00:04:23,220 --> 00:04:28,800
pour importer un module Node qui est défini dans un autre fichier dans le fichier courant afin

61
00:04:28,800 --> 00:04:32,790
qu'il puisse être utilisé dans notre application de nœud.

62
00:04:33,800 --> 00:04:36,750
Les modules de nœuds peuvent être de trois catégories.

63
00:04:36,750 --> 00:04:41,842
Nous avons des modules Node basés sur des fichiers où nous définissons le module Node

64
00:04:41,842 --> 00:04:46,270
dans un fichier, dans notre application et nous l'utilisons dans notre application.

65
00:04:46,270 --> 00:04:51,100
Ensuite, nous avons des modules de base qui font déjà partie de Node.

66
00:04:51,100 --> 00:04:55,610
Les concepteurs de nœuds ont gardé ces modules de base intentionnellement petits afin

67
00:04:55,610 --> 00:04:57,970
que Node puisse être maintenu petit.

68
00:04:57,970 --> 00:05:01,060
Et fournir également suffisamment de fonctionnalités pour

69
00:05:01,060 --> 00:05:05,310
que les concepteurs de modules externes puissent ajouter leurs propres

70
00:05:05,310 --> 00:05:10,320
fonctionnalités qui peuvent être exploitées lorsque nous avons développé des applications Node.

71
00:05:10,320 --> 00:05:18,580
Ainsi, les modules de base incluent chemin, système de fichiers, os, util et quelques autres.

72
00:05:18,580 --> 00:05:22,670
Nous en rencontrerons quelques-uns au fur et à mesure que nous suivrons ce cours.

73
00:05:22,670 --> 00:05:25,010
Ensuite, nous avons des modules Node externes.

74
00:05:25,010 --> 00:05:29,650
Il s'agit de modules Node tiers développés par les développeurs Node,

75
00:05:29,650 --> 00:05:33,210
puis mis à disposition via l'écosystème Node.

76
00:05:33,210 --> 00:05:40,586
Ainsi, ces modules Node externes peuvent être installés dans notre système en utilisant NPM.

77
00:05:40,586 --> 00:05:45,363
Tant de fois, vous nous verrez utiliser NPM install et

78
00:05:45,363 --> 00:05:50,937
le nom du module Node et qui sera inclus dans

79
00:05:50,937 --> 00:05:57,010
notre application Node dans un dossier nommé node_modules dossier.

80
00:05:57,010 --> 00:06:05,000
Et nous rencontrerons des modules Node externes dans une leçon ultérieure de ce cours.

81
00:06:05,000 --> 00:06:07,630
Comment utiliser les modules Node ?

82
00:06:07,630 --> 00:06:13,720
Lorsque vous devez utiliser un module Node dans un autre fichier Node dans votre application,

83
00:06:13,720 --> 00:06:16,960
vous devez utiliser la fonction require.

84
00:06:16,960 --> 00:06:21,180
J' ai brièvement mentionné la fonction require dans l'une des

85
00:06:21,180 --> 00:06:22,440
diapositives précédentes là-bas.

86
00:06:22,440 --> 00:06:26,420
La fonction require pour les modules Node basés sur des fichiers,

87
00:06:26,420 --> 00:06:29,073
vous spécifierez ceci comme requis,

88
00:06:29,073 --> 00:06:33,955
puis spécifiez le chemin d'accès au fichier qui contient le module Node.

89
00:06:33,955 --> 00:06:39,560
Donc, vous diriez requierre./, le nom du module si le fichier existe

90
00:06:39,560 --> 00:06:45,590
dans le dossier courant écrit dans lequel votre application Node existe.

91
00:06:45,590 --> 00:06:51,060
Donc, cela spécifie le chemin relatif au fichier à partir de l'emplacement actuel.

92
00:06:51,060 --> 00:06:54,247
Et aussi pour les modules de base et externes,

93
00:06:54,247 --> 00:07:00,260
vous les spécifiez normalement en disant require et le nom du module.

94
00:07:00,260 --> 00:07:03,090
Vous devez spécifier explicitement un chemin pour cela.

95
00:07:03,090 --> 00:07:06,200
S' il s'agit d'un module de base, il fait déjà partie de Node et

96
00:07:06,200 --> 00:07:08,120
il sera donc automatiquement inclus.

97
00:07:08,120 --> 00:07:13,365
S' il s'agit d'un module externe, il sera installé soit dans

98
00:07:13,365 --> 00:07:18,978
le dossier node_modules dans le dossier courant, soit si le nœud ne

99
00:07:18,978 --> 00:07:25,327
trouve pas le module externe dans le dossier node_modules dans le dossier courant,

100
00:07:25,327 --> 00:07:31,058
il passera au prochain dossier de niveau supérieur à la recherche de ce module Node.

101
00:07:31,058 --> 00:07:33,989
Ou le prochain dossier de niveau supérieur et le

102
00:07:33,989 --> 00:07:39,143
haut de la hiérarchie jusqu'à ce qu'il localise les modules Node qui

103
00:07:39,143 --> 00:07:44,390
seront ensuite importés pour être utilisés dans votre application Node.

104
00:07:44,390 --> 00:07:48,040
S' il est incapable de trouver le module Node dans la hiérarchie,

105
00:07:48,040 --> 00:07:52,640
alors il va évidemment déclencher une erreur indiquant que le module Node est manquant.

106
00:07:52,640 --> 00:07:57,690
Cette façon d'organiser est très utile dans la façon dont

107
00:07:57,690 --> 00:08:03,220
la structure de l'application Node est définie car nous en rencontrerons

108
00:08:04,840 --> 00:08:08,460
plus dans la dernière partie de ce cours.

109
00:08:08,460 --> 00:08:13,530
Avec cette introduction rapide aux modules Node, jetons un coup d'oeil à un exemple que

110
00:08:13,530 --> 00:08:19,150
nous ferons dans le cadre de l'exercice qui suit cette conférence.

111
00:08:19,150 --> 00:08:23,210
Comme nous l'avons appris dans cette conférence, la

112
00:08:23,210 --> 00:08:28,040
limite d'un module Node est définie par le fichier qui contient le code ici.

113
00:08:28,040 --> 00:08:34,060
Donc ici, j'ai un exemple de module Node défini comme rectangle.js.

114
00:08:34,060 --> 00:08:38,113
Et là, vous pouvez voir que j'utilise deux exportations ici,

115
00:08:38,113 --> 00:08:42,096
je dis exports.perimeter et exports.area.

116
00:08:42,096 --> 00:08:47,401
Et vous verrez qu'ici je n'utilise pas

117
00:08:47,401 --> 00:08:52,740
module.exports car export lui-même est aussi une version raccourcie de module.exports.

118
00:08:52,740 --> 00:08:57,057
Donc, si vous ne voulez pas utiliser module.exports complètement

119
00:08:57,057 --> 00:09:01,804
mais que vous voulez juste exporter, alors c'est une autre façon d'écrire les

120
00:09:01,804 --> 00:09:06,316
éléments qui sont exportés à partir des modules Node actuels.

121
00:09:06,316 --> 00:09:09,875
Donc, ici, nous exportons deux fonctions, le périmètre et

122
00:09:09,875 --> 00:09:12,750
la zone du module de noeud rectangle.

123
00:09:12,750 --> 00:09:17,679
Maintenant, afin de faire usage de ce module dans un autre fichier,

124
00:09:17,679 --> 00:09:21,870
alors jetons un oeil au fichier index.js.

125
00:09:21,870 --> 00:09:27,240
Et la toute première ligne dans ce fichier, vous remarquerez qu'il dit

126
00:09:27,240 --> 00:09:32,220
var rect = require et entre guillemets,. /rectangle.

127
00:09:32,220 --> 00:09:36,650
Donc, cela spécifie que le module rectangle va être important ici,

128
00:09:36,650 --> 00:09:42,090
j'ai utilisé dans ce fichier particulier de l'application.

129
00:09:42,090 --> 00:09:45,670
C' est ainsi que nous définirons les modules Node, et

130
00:09:45,670 --> 00:09:50,080
ceci est un exemple d'un module Node basé sur des fichiers.

131
00:09:50,080 --> 00:09:52,197
Nous rencontrerons le noyau et

132
00:09:52,197 --> 00:09:56,438
les modules Node externes dans les leçons ultérieures de ce cours.

133
00:09:56,438 --> 00:10:02,669
[ MUSIQUE]