1
00:00:00,000 --> 00:00:04,614
[MUSIC]

2
00:00:04,614 --> 00:00:10,618
Теперь, когда у нас есть понимание модулей узлов, давайте сделаем наше первое упражнение,

3
00:00:10,618 --> 00:00:17,080
чтобы улучшить наше понимание модулей узлов с примером в этом упражнении.

4
00:00:17,080 --> 00:00:22,730
Поэтому, чтобы начать работу, давайте перейдем в удобное место на нашем компьютере.

5
00:00:22,730 --> 00:00:25,600
Так вот, я нахожусь в папке Coursera,

6
00:00:25,600 --> 00:00:30,740
где у меня есть файлы из всех предыдущих курсов.

7
00:00:30,740 --> 00:00:35,680
Поэтому я собираюсь создать новую папку здесь с именем NodeJS, и в

8
00:00:35,680 --> 00:00:42,020
этой папке я собираюсь хранить весь код, связанный с курсом NodeJS.

9
00:00:42,020 --> 00:00:44,370
Поэтому, перейдя в папку NodeJS,

10
00:00:44,370 --> 00:00:48,845
давайте создадим здесь подпапку с именем node-examples.

11
00:00:53,410 --> 00:00:54,590
И в этой папке

12
00:00:54,590 --> 00:01:00,470
мы будем создавать файлы, связанные с этим упражнением.

13
00:01:01,880 --> 00:01:07,018
Откройте окно терминала или командное окно, а

14
00:01:07,018 --> 00:01:13,442
затем перейдите в папку node-examples в командной строке,

15
00:01:13,442 --> 00:01:17,681
а затем в командной строке введите npm init, чтобы

16
00:01:17,681 --> 00:01:22,837
инициализировать эту папку как приложение узла.

17
00:01:22,837 --> 00:01:27,757
Поэтому введите npm init, а затем он придумает некоторые

18
00:01:27,757 --> 00:01:33,050
стандартные значения по умолчанию для некоторой информации,

19
00:01:33,050 --> 00:01:38,120
которая будет храниться в файле с именем package.json.

20
00:01:38,120 --> 00:01:45,251
Так что для имени, давайте напечатаем node-примеры,

21
00:01:45,251 --> 00:01:52,383
а версия 1.1.0, а описание,

22
00:01:52,383 --> 00:01:58,639
я просто напечатаю Simple Node Examples.

23
00:02:00,565 --> 00:02:05,200
И точка входа - это значение по умолчанию index.js.

24
00:02:05,200 --> 00:02:09,210
Для тестовой команды просто оставьте его как таковой и репозиторий Git на данный момент,

25
00:02:09,210 --> 00:02:10,890
мы оставим его как таковой.

26
00:02:10,890 --> 00:02:14,790
А для автора, просто заполните свое имя.

27
00:02:17,430 --> 00:02:22,610
И остальное, а затем npm init

28
00:02:22,610 --> 00:02:27,510
покажет значение по умолчанию, которое он будет настроить в файле package.json.

29
00:02:27,510 --> 00:02:31,960
Как мы узнали, файл package.json является файлом манифеста для

30
00:02:31,960 --> 00:02:36,210
приложения узла, и как только вы завершите это, вы заметите, что

31
00:02:36,210 --> 00:02:41,500
файл package.json создается в этой папке node-examples.

32
00:02:41,500 --> 00:02:46,980
Давайте откроем этот проект в редакторе по нашему выбору.

33
00:02:46,980 --> 00:02:53,350
Поэтому я собираюсь открыть свой код Visual Studio в этой папке.

34
00:02:53,350 --> 00:02:58,600
Когда мой код Visual Studio, он открывается в этой папке.

35
00:02:58,600 --> 00:03:05,100
Я собираюсь перейти к сценариям здесь и настроить сценарий здесь, говорящий «start»,

36
00:03:06,500 --> 00:03:10,599
и я скажу «node index».

37
00:03:11,830 --> 00:03:16,460
А затем сохраните изменения в файле package.json.

38
00:03:16,460 --> 00:03:22,595
Затем я собираюсь создать папку здесь и назову ее как index.js, и

39
00:03:22,595 --> 00:03:28,267
как вы поняли, что основной здесь дается как файл index.js,

40
00:03:28,267 --> 00:03:33,470
так что стартовый файл для моего приложения узла.

41
00:03:33,470 --> 00:03:38,600
Поэтому в файле index.js я собираюсь создать простой пример,

42
00:03:38,600 --> 00:03:43,760
чтобы проиллюстрировать различные функции узла и как мы будем строить модули узлов.

43
00:03:43,760 --> 00:03:49,410
Итак, здесь мы построим пример, который оценивает площадь и

44
00:03:49,410 --> 00:03:51,960
периметр прямоугольника.

45
00:03:51,960 --> 00:03:56,280
Очень простой пример, который помогает нам проиллюстрировать

46
00:03:56,280 --> 00:03:59,480
различные аспекты о узлах и узлах модулей.

47
00:03:59,480 --> 00:04:05,336
Таким образом, тип начала работы, Var rect.

48
00:04:05,336 --> 00:04:10,787
И мы собираемся создать объект JavaScript здесь,

49
00:04:10,787 --> 00:04:17,930
это два свойства, периметр, который является функцией.

50
00:04:17,930 --> 00:04:26,040
И, как вы видите, я использую функцию стрелки для определения этой функции здесь.

51
00:04:26,040 --> 00:04:32,100
Таким образом, узел в его текущей версии поддерживает ES 6 или ES 2015.

52
00:04:32,100 --> 00:04:36,251
И поэтому я собираюсь использовать поддержку функции стрелки,

53
00:04:36,251 --> 00:04:41,210
которая доступна в ES 2015, чтобы определить эту функцию здесь.

54
00:04:41,210 --> 00:04:46,720
И если вы прошли предыдущие курсы, где мы используем юбку времени,

55
00:04:46,720 --> 00:04:48,800
это было бы вам знакомо.

56
00:04:50,340 --> 00:04:57,560
Теперь с узлом, у нас есть возможность использования JavaScript или машинописного текста.

57
00:04:57,560 --> 00:05:02,350
Теперь документация для узла, а

58
00:05:02,350 --> 00:05:07,865
также выразить, что мы увидим позже, все используют стандартный JavaScript.

59
00:05:07,865 --> 00:05:13,465
Поэтому я использовал стандартный JavaScript в этом курсе или JavaScript

60
00:05:13,465 --> 00:05:16,505
ES2015 в этом курсе.

61
00:05:16,505 --> 00:05:18,585
Если вы предпочитаете использовать TypeScript,

62
00:05:18,585 --> 00:05:24,620
вы можете настроить свои примеры узлов, чтобы написать свое приложение в TypeScript.

63
00:05:24,620 --> 00:05:28,740
Но тогда вам придется передать этот код в JavaScript,

64
00:05:28,740 --> 00:05:31,090
чтобы его можно было запустить с помощью Node.

65
00:05:31,090 --> 00:05:34,150
Поэтому вам нужно настроить дополнительную инфраструктуру,

66
00:05:34,150 --> 00:05:36,640
чтобы иметь возможность использовать TypeScript.

67
00:05:36,640 --> 00:05:40,630
В этом курсе я собираюсь использовать JavaScript в качестве языка по умолчанию для

68
00:05:40,630 --> 00:05:41,960
остальной части курса.

69
00:05:41,960 --> 00:05:46,790
И я не собираюсь идти в Typescript использовать его в этом курсе,

70
00:05:46,790 --> 00:05:51,210
когда узлы начинают поддерживать Typescript изначально,

71
00:05:51,210 --> 00:05:55,220
тогда имеет смысл перейти к Typescript [НЕразборчиво].

72
00:05:55,220 --> 00:05:57,550
Но если вас интересует Typescript,

73
00:05:57,550 --> 00:06:01,770
я заметил, что было несколько статей в блоге, опубликованных разными

74
00:06:01,770 --> 00:06:07,400
людьми, которые иллюстрируют, как вы можете настроить приложение Node для использования Typescript.

75
00:06:07,400 --> 00:06:11,420
Сказав это, давайте вернемся к файлу index.js, а

76
00:06:11,420 --> 00:06:13,030
затем продолжим наш пример.

77
00:06:13,030 --> 00:06:20,340
Поэтому я устанавливаю периметр здесь, а затем также функцию площади здесь.

78
00:06:20,340 --> 00:06:22,460
Опять же, принимая два значения, x и y,

79
00:06:22,460 --> 00:06:26,650
которые представляют длину и ширину прямоугольника.

80
00:06:26,650 --> 00:06:31,830
Два параметра, и площадь вычисляется как x раз y.

81
00:06:31,830 --> 00:06:36,150
Таким образом, из вашей начальной школы математики

82
00:06:36,150 --> 00:06:40,670
вы знаете, как вычислить периметр и площадь прямоугольника.

83
00:06:40,670 --> 00:06:45,120
Итак, здесь я установил этот объект JavaScript здесь, а

84
00:06:45,120 --> 00:06:50,690
затем позвольте мне определить функцию здесь с именем SolveRect,

85
00:06:50,690 --> 00:06:54,166
которая принимает два значения, (l

86
00:06:54,166 --> 00:06:58,180
, b), в качестве двух параметров, длины и причала прямоугольника.

87
00:06:58,180 --> 00:07:03,409
И он будет использовать этот объект JavaScript, который я

88
00:07:03,409 --> 00:07:09,750
определил ранее, чтобы вычислить периметр и площадь прямоугольника.

89
00:07:09,750 --> 00:07:12,762
Итак, внутри здесь

90
00:07:12,762 --> 00:07:17,710
позвольте мне сделать console.log и

91
00:07:17,710 --> 00:07:25,035
сказать Решение для прямоугольника с l равным

92
00:07:28,483 --> 00:07:30,827
Это только для нашего удобства.

93
00:07:40,010 --> 00:07:45,335
Таким образом, это будет печатать эту информацию на терминале там

94
00:07:45,335 --> 00:07:50,944
, и поэтому в этом console.log я просто печатаю значения l и b, так

95
00:07:50,944 --> 00:07:58,130
что я знаю для прямоугольника, для которого мы вычисляем длину и ширину.

96
00:07:58,130 --> 00:08:03,118
Теперь я собираюсь проверить, чтобы убедиться, что длина и

97
00:08:03,118 --> 00:08:07,870
ширина не меньше или равна нулю.

98
00:08:07,870 --> 00:08:13,340
Если они меньше или равны нулю, то не имеет смысла вычислять

99
00:08:13,340 --> 00:08:19,790
периметр и площадь прямоугольника.

100
00:08:19,790 --> 00:08:27,957
Поэтому я скажу console.log здесь,

101
00:08:27,957 --> 00:08:33,790
поэтому я бы сказал, что

102
00:08:33,790 --> 00:08:39,040
размеры прямоугольника должны быть

103
00:08:39,040 --> 00:08:44,008
больше нуля.

104
00:08:58,175 --> 00:09:04,030
Таким образом, мы распечатаем эти значения на экране, если длина и

105
00:09:04,030 --> 00:09:07,640
ширина меньше или равна нулю.

106
00:09:07,640 --> 00:09:11,533
В противном случае, конечно, имеет смысл вычислить периметр и

107
00:09:11,533 --> 00:09:13,370
площадь прямоугольника.

108
00:09:13,370 --> 00:09:16,944
Так что мы скажем иначе

109
00:09:16,944 --> 00:09:22,428
console.log («Площадь

110
00:09:22,428 --> 00:09:27,679
прямоугольника»).

111
00:09:55,345 --> 00:09:57,416
Аналогичным образом, мы будем вычислять,

112
00:10:10,161 --> 00:10:12,217
периметр прямоугольника.

113
00:10:21,787 --> 00:10:22,562
Вот.

114
00:10:24,130 --> 00:10:27,602
Итак, внутри этой функции мы вычисляем площадь и

115
00:10:27,602 --> 00:10:31,210
периметр прямоугольника и очищаем его.

116
00:10:31,210 --> 00:10:36,058
Теперь нам, очевидно, нужно вызвать эту функцию, используя разные значения

117
00:10:36,058 --> 00:10:39,230
длины и ширины и посмотреть, что она печатает.

118
00:10:39,230 --> 00:10:45,196
Поэтому прямо ниже здесь, я собираюсь сказать SolveRect, а

119
00:10:45,196 --> 00:10:48,150
затем просто использовать некоторые значения здесь.

120
00:10:48,150 --> 00:10:54,533
Так что я скажу 2, 4 и 3, 5.

121
00:10:58,375 --> 00:11:04,771
И давайте скажем 0, 5 и посмотрим, что произойдет.

122
00:11:04,771 --> 00:11:11,957
И -3, 5.

123
00:11:11,957 --> 00:11:16,099
Таким образом, четыре различных варианта параметров здесь, чтобы

124
00:11:16,099 --> 00:11:21,130
проиллюстрировать, как это приложение будет работать.

125
00:11:21,130 --> 00:11:24,640
Так что с этим, давайте сохраним изменения.

126
00:11:24,640 --> 00:11:30,590
Теперь возвращаясь к терминалу, в командной строке введите npm start, и

127
00:11:30,590 --> 00:11:36,530
вы увидите, что он печатает область периметра для

128
00:11:36,530 --> 00:11:39,980
различных прямоугольников, которые мы там указали.

129
00:11:39,980 --> 00:11:44,000
Итак, мы говорим, что решение для прямоугольника с l равно два и

130
00:11:44,000 --> 00:11:48,890
b равно четырем, а площадь периметра для этого прямоугольника.

131
00:11:48,890 --> 00:11:53,190
И для второго, и для третьего, как вы видите, ваши

132
00:11:54,380 --> 00:11:58,870
размеры должны быть больше нуля, а для

133
00:11:58,870 --> 00:12:02,450
четвертого также, он печатает то же значение.

134
00:12:02,450 --> 00:12:07,010
Теперь, очевидно, я замечаю, что мне понадобится место там, поэтому я просто исправлю

135
00:12:07,010 --> 00:12:12,731
код, чтобы добавить это дополнительное пространство там.

136
00:12:12,731 --> 00:12:18,540
Таким образом, мы видели, как мы можем написать простое приложение узла

137
00:12:18,540 --> 00:12:24,260
для вычисления периметра и площади прямоугольника.

138
00:12:24,260 --> 00:12:27,780
Теперь, очевидно, вы хотите иметь возможность настроить репозиторий Git,

139
00:12:27,780 --> 00:12:31,930
где вы можете хранить весь этот код.

140
00:12:31,930 --> 00:12:39,110
Поэтому в командной строке введите git init для инициализации репозитория Git, а

141
00:12:39,110 --> 00:12:45,195
затем вы можете проверить статус репозитория Git, и

142
00:12:45,195 --> 00:12:48,655
вы заметите, что два файла были созданы заново.

143
00:12:48,655 --> 00:12:52,651
Итак, давайте добавим два файла в наш репозиторий Git, и

144
00:12:52,651 --> 00:12:56,535
на этом этапе,

145
00:12:56,535 --> 00:13:00,505
проверяя статус git, вы увидите, что два файла были проверены.

146
00:13:00,505 --> 00:13:06,611
Итак, давайте сделаем git commit разбить

147
00:13:06,611 --> 00:13:13,710
сообщение Simple Node Example.

148
00:13:13,710 --> 00:13:18,970
Во второй части этого упражнения мы собираемся теперь

149
00:13:20,130 --> 00:13:24,330
создать модуль узла в этом примере.

150
00:13:24,330 --> 00:13:29,191
Поэтому в редакторе, в редакторе,

151
00:13:29,191 --> 00:13:34,610
создайте файл с именем rectangle.js.

152
00:13:34,610 --> 00:13:38,130
И внутри этого файла, мы собираемся создать модуль узла.

153
00:13:38,130 --> 00:13:43,100
Таким образом, мы будем использовать

154
00:13:43,100 --> 00:13:47,892
объект экспорта для того, чтобы экспортировать два

155
00:13:47,892 --> 00:13:52,517
значения из этого модуля узла.

156
00:13:52,517 --> 00:13:59,063
Таким образом, как вы узнали, каждый файл в узловом приложении становится собственным модулем узла.

157
00:13:59,063 --> 00:14:02,264
Итак, из этого прямоугольного модуля узла

158
00:14:02,264 --> 00:14:05,909
я собираюсь экспортировать два значения, периметр

159
00:14:09,841 --> 00:14:15,544
и область.

160
00:14:15,544 --> 00:14:22,080
Теперь я собираюсь перейти в файл index.js, а затем просто скопировать это значение.

161
00:14:24,610 --> 00:14:29,558
И это то, что мы будем использовать в качестве экспорта для

162
00:14:29,558 --> 00:14:33,820
периметра здесь и аналогично для

163
00:14:33,820 --> 00:14:38,495
области, которую я просто собираюсь скопировать это из

164
00:14:38,495 --> 00:14:44,340
файла index js, а затем использовать это для области.

165
00:14:44,340 --> 00:14:49,498
Итак, теперь у нас есть простой модуль узла готов, который экспортирует два значения,

166
00:14:49,498 --> 00:14:53,222
периметр и площадь из этого файла rectangle.js.

167
00:14:53,222 --> 00:14:57,583
Таким образом, как мы узнали в лекции, [неразборчивые] модули узлов,

168
00:14:57,583 --> 00:15:02,273
теперь, как только вы создаете модуль узла, вам нужно ввести этот модуль узла

169
00:15:02,273 --> 00:15:05,970
в другой файл, где вы хотите использовать его.

170
00:15:05,970 --> 00:15:09,771
Таким образом, возвращаясь к файлу index.js.

171
00:15:09,771 --> 00:15:17,372
Теперь я собираюсь заменить все это требованием, и

172
00:15:17,372 --> 00:15:22,870
я отмечаю, что этот модуль узла находится в той

173
00:15:22,870 --> 00:15:27,250
же папке, что и текущий проект.

174
00:15:27,250 --> 00:15:31,560
Поэтому я бы сказал, что требуется прямоугольник, и все.

175
00:15:31,560 --> 00:15:33,900
Итак, мои изменения теперь завершены.

176
00:15:33,900 --> 00:15:39,550
Таким образом, этот конкретный файл index.js собирается импортировать

177
00:15:39,550 --> 00:15:45,190
модуль узла прямоугольника, который мы только что создали, а затем использовать его в нашем коде здесь.

178
00:15:45,190 --> 00:15:46,750
Итак, давайте сохраним изменения, а

179
00:15:46,750 --> 00:15:51,780
затем посмотрим на наше приложение снова, в командной строке терминала.

180
00:15:51,780 --> 00:15:56,160
Переходя к терминалу, в командной строке введите npm start.

181
00:15:58,200 --> 00:16:02,100
Вы заметите, что измененная

182
00:16:02,100 --> 00:16:07,310
версия этого приложения дает точно такие же результаты, как и раньше.

183
00:16:07,310 --> 00:16:12,229
С этим мы узнаем о том, как вы можете создать простой

184
00:16:12,229 --> 00:16:14,699
модуль узла в нашем приложении.

185
00:16:14,699 --> 00:16:19,781
Теперь проверяя статус git, вы увидите, что у вас есть два файла,

186
00:16:19,781 --> 00:16:25,370
один из которых был изменен, другой, который только что был добавлен.

187
00:16:25,370 --> 00:16:30,050
Итак, давайте добавим это в наш репозиторий Git, а

188
00:16:30,050 --> 00:16:34,088
затем сделаем git фиксацию с сообщением,

189
00:16:34,088 --> 00:16:40,360
Simple Node Module.

190
00:16:42,160 --> 00:16:47,823
И проверьте журнал git, и

191
00:16:47,823 --> 00:16:52,455
вы заметите, что у нас есть две коммиты, которые мы

192
00:16:52,455 --> 00:16:56,987
зафиксировали в нашем репозитории Git там.

193
00:16:56,987 --> 00:16:59,468
С этим мы завершаем это упражнение.

194
00:16:59,468 --> 00:17:03,000
В этом упражнении мы видели, как мы можем написать простое приложение узла.

195
00:17:03,000 --> 00:17:06,612
А также как мы можем написать простой модуль узла и

196
00:17:06,612 --> 00:17:10,419
использовать его с другим файлом в нашем приложении узла.

197
00:17:10,419 --> 00:17:16,469
[ МУЗЫКА]