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

2
00:00:04,614 --> 00:00:10,618
Bây giờ chúng ta có một sự hiểu biết về các module nút, chúng ta hãy thực hiện bài tập đầu tiên của chúng tôi

3
00:00:10,618 --> 00:00:17,080
để tiếp tục hiểu biết của chúng tôi về các module nút với một ví dụ trong bài tập này.

4
00:00:17,080 --> 00:00:22,730
Vì vậy, để bắt đầu, chúng ta hãy đi đến một vị trí thuận tiện trên máy tính của chúng tôi.

5
00:00:22,730 --> 00:00:25,600
Vì vậy, ở đây, tôi đang ở trong tài liệu của tôi thư mục Coursera,

6
00:00:25,600 --> 00:00:30,740
nơi tôi có các tập tin từ tất cả các khóa học trước đó.

7
00:00:30,740 --> 00:00:35,680
Vì vậy, tôi sẽ tạo ra một thư mục mới ở đây, tên là NodeJS và

8
00:00:35,680 --> 00:00:42,020
thư mục này là nơi tôi sẽ lưu trữ tất cả các mã liên quan đến khóa học NodeJS.

9
00:00:42,020 --> 00:00:44,370
Vì vậy, đi vào thư mục NodeJS,

10
00:00:44,370 --> 00:00:48,845
chúng ta hãy tạo một thư mục con ở đây, được đặt tên là node-examples.

11
00:00:53,410 --> 00:00:54,590
Và trong thư mục này,

12
00:00:54,590 --> 00:01:00,470
chúng tôi sẽ tạo ra các tập tin liên quan đến bài tập này.

13
00:01:01,880 --> 00:01:07,018
Mở một cửa sổ thiết bị đầu cuối hoặc một cửa sổ lệnh, và

14
00:01:07,018 --> 00:01:13,442
sau đó điều hướng đến các nút ví dụ thư mục tại dấu nhắc,

15
00:01:13,442 --> 00:01:17,681
và sau đó tại dấu nhắc, gõ npm init để

16
00:01:17,681 --> 00:01:22,837
khởi tạo thư mục này như là một ứng dụng nút.

17
00:01:22,837 --> 00:01:27,757
Vì vậy, gõ npm init và sau đó nó sẽ đưa ra một số

18
00:01:27,757 --> 00:01:33,050
giá trị mặc định tiêu chuẩn cho

19
00:01:33,050 --> 00:01:38,120
một số thông tin sẽ lưu trữ trong một tập tin có tên package.json.

20
00:01:38,120 --> 00:01:45,251
Vì vậy, đối với tên, chúng ta hãy gõ nút ví dụ,

21
00:01:45,251 --> 00:01:52,383
và phiên bản là 1.1.0, và mô tả,

22
00:01:52,383 --> 00:01:58,639
tôi chỉ cần gõ Simple Node Ví dụ.

23
00:02:00,565 --> 00:02:05,200
Và điểm nhập là giá trị mặc định index.js.

24
00:02:05,200 --> 00:02:09,210
Đối với lệnh test chỉ để nó như vậy và kho Git cho thời điểm này,

25
00:02:09,210 --> 00:02:10,890
chúng tôi sẽ để nó như vậy.

26
00:02:10,890 --> 00:02:14,790
Và đối với tác giả, chỉ cần điền vào tên của bạn.

27
00:02:17,430 --> 00:02:22,610
Và phần còn lại, và sau đó npm init sẽ hiển

28
00:02:22,610 --> 00:02:27,510
thị giá trị mặc định mà nó sẽ thiết lập trong tập tin package.json.

29
00:02:27,510 --> 00:02:31,960
Vì vậy, như chúng ta đã học được, tập tin package.json là tập tin manifest cho

30
00:02:31,960 --> 00:02:36,210
một ứng dụng nút, và một khi bạn hoàn thành điều này, bạn sẽ nhận thấy rằng

31
00:02:36,210 --> 00:02:41,500
tập tin package.json được tạo ra trong thư mục node-examples.

32
00:02:41,500 --> 00:02:46,980
Hãy mở dự án này trong một biên tập viên của sự lựa chọn của chúng tôi.

33
00:02:46,980 --> 00:02:53,350
Vì vậy, tôi sẽ mở mã Visual Studio của tôi tại thư mục này.

34
00:02:53,350 --> 00:02:58,600
Khi mã Visual Studio của tôi, nó sẽ mở ra trong thư mục đó.

35
00:02:58,600 --> 00:03:05,100
Tôi sẽ đi đến các kịch bản ở đây và thiết lập một kịch bản ở đây nói “bắt đầu”

36
00:03:06,500 --> 00:03:10,599
và tôi sẽ nói “chỉ mục nút”.

37
00:03:11,830 --> 00:03:16,460
Và sau đó lưu các thay đổi vào tệp package.json.

38
00:03:16,460 --> 00:03:22,595
Tiếp theo tôi sẽ tạo ra một thư mục ở đây và đặt tên nó là index.js và

39
00:03:22,595 --> 00:03:28,267
như bạn nhận ra rằng chính ở đây được đưa ra như là tập tin index.js,

40
00:03:28,267 --> 00:03:33,470
do đó bắt đầu tập tin cho ứng dụng nút của tôi.

41
00:03:33,470 --> 00:03:38,600
Vì vậy, trong tập tin index.js, tôi sẽ tạo ra một ví dụ đơn giản

42
00:03:38,600 --> 00:03:43,760
để minh họa các tính năng khác nhau của nút và làm thế nào chúng ta sẽ xây dựng mô-đun nút.

43
00:03:43,760 --> 00:03:49,410
Vì vậy, ở đây, chúng ta sẽ xây dựng một ví dụ đánh giá diện tích và

44
00:03:49,410 --> 00:03:51,960
chu vi của một hình chữ nhật.

45
00:03:51,960 --> 00:03:56,280
Một ví dụ rất đơn giản mà nó giúp chúng ta minh họa

46
00:03:56,280 --> 00:03:59,480
các khía cạnh khác nhau về node và node module.

47
00:03:59,480 --> 00:04:05,336
Vì vậy, các loại bắt đầu, Var rect.

48
00:04:05,336 --> 00:04:10,787
Và chúng ta sẽ tạo ra một đối tượng JavaScript ở đây,

49
00:04:10,787 --> 00:04:17,930
đó là hai thuộc tính, chu vi, đó là một chức năng.

50
00:04:17,930 --> 00:04:26,040
Và như bạn thấy, tôi đang sử dụng chức năng mũi tên để xác định chức năng này ở đây.

51
00:04:26,040 --> 00:04:32,100
Vì vậy, nút trong phiên bản hiện tại của nó hỗ trợ ES 6 hoặc ES 2015.

52
00:04:32,100 --> 00:04:36,251
Và vì vậy đó là lý do tại sao tôi sẽ sử dụng hỗ trợ chức năng mũi tên

53
00:04:36,251 --> 00:04:41,210
có sẵn trong ES 2015 để xác định chức năng này ở đây.

54
00:04:41,210 --> 00:04:46,720
Và nếu bạn đã thực hiện các khóa học trước đó mà chúng tôi sử dụng váy thời gian,

55
00:04:46,720 --> 00:04:48,800
điều này sẽ khá quen thuộc với bạn.

56
00:04:50,340 --> 00:04:57,560
Bây giờ với nút, chúng ta có tùy chọn sử dụng JavaScript hoặc Typescript.

57
00:04:57,560 --> 00:05:02,350
Bây giờ các tài liệu cho nút và

58
00:05:02,350 --> 00:05:07,865
cũng thể hiện rằng chúng ta sẽ thấy sau này, tất cả đều sử dụng JavaScript tiêu chuẩn.

59
00:05:07,865 --> 00:05:13,465
Vì vậy, tôi đã mặc định để sử dụng JavaScript tiêu chuẩn trong khóa học này hoặc

60
00:05:13,465 --> 00:05:16,505
ES2015 JavaScript trong khóa học này.

61
00:05:16,505 --> 00:05:18,585
Nếu bạn thích sử dụng TypeScript,

62
00:05:18,585 --> 00:05:24,620
bạn có thể thiết lập các ví dụ nút để viết ứng dụng của bạn trong TypeScript.

63
00:05:24,620 --> 00:05:28,740
Nhưng sau đó bạn sẽ phải transpile mã đó vào JavaScript để

64
00:05:28,740 --> 00:05:31,090
nó có thể được chạy bằng Node.

65
00:05:31,090 --> 00:05:34,150
Vì vậy, bạn phải thiết lập cơ sở hạ tầng bổ sung

66
00:05:34,150 --> 00:05:36,640
để có thể sử dụng TypeScript.

67
00:05:36,640 --> 00:05:40,630
Trong khóa học này, tôi sẽ sử dụng JavaScript làm ngôn ngữ mặc định cho

68
00:05:40,630 --> 00:05:41,960
phần còn lại của khóa học.

69
00:05:41,960 --> 00:05:46,790
Và tôi sẽ không đi vào Typescript sử dụng nó trong khóa học này

70
00:05:46,790 --> 00:05:51,210
khi các nút bắt đầu hỗ trợ Typescript bản địa,

71
00:05:51,210 --> 00:05:55,220
sau đó nó làm cho ý nghĩa hơn để chuyển sang Typescript [không nghe được].

72
00:05:55,220 --> 00:05:57,550
Nhưng nếu bạn quan tâm đến Typescript,

73
00:05:57,550 --> 00:06:01,770
tôi đã nhận thấy rằng đã có một số bài viết blog được đăng bởi

74
00:06:01,770 --> 00:06:07,400
những người khác nhau minh họa cách bạn có thể thiết lập ứng dụng Node của bạn để sử dụng Typescript.

75
00:06:07,400 --> 00:06:11,420
Có nói rằng, chúng ta hãy trở lại tập tin index.js và

76
00:06:11,420 --> 00:06:13,030
sau đó tiếp tục với ví dụ của chúng tôi.

77
00:06:13,030 --> 00:06:20,340
Vì vậy, tôi đang thiết lập một chu vi ở đây và sau đó cũng là một chức năng khu vực ở đây.

78
00:06:20,340 --> 00:06:22,460
Một lần nữa, lấy hai giá trị, x và y

79
00:06:22,460 --> 00:06:26,650
, đại diện cho chiều dài và chiều rộng của hình chữ nhật.

80
00:06:26,650 --> 00:06:31,830
Hai tham số, và diện tích được tính là x lần y

81
00:06:31,830 --> 00:06:36,150
Vì vậy, từ toán học tiểu học của

82
00:06:36,150 --> 00:06:40,670
bạn, bạn biết cách tính chu vi và diện tích của hình chữ nhật.

83
00:06:40,670 --> 00:06:45,120
Vì vậy, ở đây, tôi đã thiết lập đối tượng JavaScript này ở đây và

84
00:06:45,120 --> 00:06:50,690
sau đó cho phép tôi xác định một hàm ở đây tên SolveRect

85
00:06:50,690 --> 00:06:54,166
, trong đó có hai giá trị, (l

86
00:06:54,166 --> 00:06:58,180
, b), như hai tham số, chiều dài và bến của hình chữ nhật.

87
00:06:58,180 --> 00:07:03,409
Và nó sẽ sử dụng đối tượng JavaScript này mà tôi đã định nghĩa

88
00:07:03,409 --> 00:07:09,750
trước đó để tính toán chu vi và diện tích của anh hình chữ nhật.

89
00:07:09,750 --> 00:07:12,762
Vì vậy, bên trong đây,

90
00:07:12,762 --> 00:07:17,710
hãy để tôi làm một console.log và

91
00:07:17,710 --> 00:07:25,035
nói Giải quyết cho hình chữ nhật với l bằng

92
00:07:28,483 --> 00:07:30,827
Điều này chỉ là để thuận tiện cho chúng tôi.

93
00:07:40,010 --> 00:07:45,335
Vì vậy, mà sẽ in ra thông tin này vào thiết bị đầu cuối có và

94
00:07:45,335 --> 00:07:50,944
như vậy trong console.log này, tôi chỉ in ra các giá trị l và b, để

95
00:07:50,944 --> 00:07:58,130
tôi biết cho hình chữ nhật mà chúng tôi đang tính toán chiều dài và chiều rộng.

96
00:07:58,130 --> 00:08:03,118
Bây giờ, tôi sẽ kiểm tra để đảm bảo chiều dài và chiều

97
00:08:03,118 --> 00:08:07,870
rộng không nhỏ hơn hoặc bằng 0.

98
00:08:07,870 --> 00:08:13,340
Nếu chúng nhỏ hơn hoặc bằng 0, thì không có ý nghĩa để tính toán

99
00:08:13,340 --> 00:08:19,790
chu vi và diện tích cho hình chữ nhật.

100
00:08:19,790 --> 00:08:27,957
Vì vậy, tôi sẽ nói console.log ở đây,

101
00:08:27,957 --> 00:08:33,790
vì vậy tôi sẽ nói

102
00:08:33,790 --> 00:08:39,040
kích thước hình chữ nhật nên

103
00:08:39,040 --> 00:08:44,008
lớn hơn không.

104
00:08:58,175 --> 00:09:04,030
Vì vậy, theo cách đó, chúng tôi in ra các giá trị này trên màn hình nếu chiều dài và chiều

105
00:09:04,030 --> 00:09:07,640
rộng nhỏ hơn hoặc bằng 0.

106
00:09:07,640 --> 00:09:11,533
Nếu không tất nhiên, nó có ý nghĩa để tính toán chu vi và

107
00:09:11,533 --> 00:09:13,370
diện tích của hình chữ nhật.

108
00:09:13,370 --> 00:09:16,944
Vì vậy, chúng ta sẽ nói khác

109
00:09:16,944 --> 00:09:22,428
console.log (“Diện tích

110
00:09:22,428 --> 00:09:27,679
của hình chữ nhật là”).

111
00:09:55,345 --> 00:09:57,416
Tương tự như vậy, chúng tôi sẽ tính toán,

112
00:10:10,161 --> 00:10:12,217
Chu vi của hình chữ nhật.

113
00:10:21,787 --> 00:10:22,562
Đây.

114
00:10:24,130 --> 00:10:27,602
Vì vậy, bên trong chức năng này, chúng tôi đang tính toán diện tích và

115
00:10:27,602 --> 00:10:31,210
chu vi của hình chữ nhật và thanh lọc nó ra.

116
00:10:31,210 --> 00:10:36,058
Bây giờ, chúng ta rõ ràng cần phải gọi hàm này bằng cách sử dụng các giá trị khác nhau cho

117
00:10:36,058 --> 00:10:39,230
chiều dài và chiều rộng và xem những gì nó in lên.

118
00:10:39,230 --> 00:10:45,196
Vì vậy, ngay dưới đây, tôi sẽ nói SolveRect và

119
00:10:45,196 --> 00:10:48,150
sau đó chỉ cần sử dụng một số giá trị ở đây.

120
00:10:48,150 --> 00:10:54,533
Vì vậy, tôi sẽ nói 2, 4, và 3, 5.

121
00:10:58,375 --> 00:11:04,771
Và chúng ta hãy nói 0, 5 và xem những gì xảy ra.

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

123
00:11:11,957 --> 00:11:16,099
Vì vậy, bốn lựa chọn khác nhau của các tham số ở đây để

124
00:11:16,099 --> 00:11:21,130
minh họa cách ứng dụng này sẽ làm việc.

125
00:11:21,130 --> 00:11:24,640
Vì vậy, với điều này, chúng ta hãy lưu các thay đổi.

126
00:11:24,640 --> 00:11:30,590
Bây giờ quay trở lại thiết bị đầu cuối, tại dấu nhắc, gõ npm bắt đầu và

127
00:11:30,590 --> 00:11:36,530
bạn sẽ thấy rằng nó in ra khu vực của chu vi cho

128
00:11:36,530 --> 00:11:39,980
các hình chữ nhật khác nhau mà chúng tôi đã chỉ định ở đó.

129
00:11:39,980 --> 00:11:44,000
Vì vậy, chúng tôi đang nói giải quyết cho hình chữ nhật với l là bằng hai và

130
00:11:44,000 --> 00:11:48,890
b là bằng bốn, và diện tích của chu vi cho hình chữ nhật này.

131
00:11:48,890 --> 00:11:53,190
Và đối với thứ hai, và đối với thứ ba, như bạn thấy,

132
00:11:54,380 --> 00:11:58,870
kích thước của bạn phải lớn hơn 0 và đối với

133
00:11:58,870 --> 00:12:02,450
thứ tư cũng, nó đang in ra cùng một giá trị.

134
00:12:02,450 --> 00:12:07,010
Bây giờ rõ ràng, tôi nhận thấy rằng tôi sẽ cần một không gian ở đó, vì vậy tôi sẽ chỉ sửa

135
00:12:07,010 --> 00:12:12,731
mã để thêm vào đó không gian thêm ở đó.

136
00:12:12,731 --> 00:12:18,540
Vì vậy, với điều này, chúng ta đã thấy làm thế nào chúng ta có thể viết một ứng dụng nút đơn giản

137
00:12:18,540 --> 00:12:24,260
để tính toán chu vi và diện tích của một hình chữ nhật.

138
00:12:24,260 --> 00:12:27,780
Bây giờ rõ ràng, bạn muốn có thể thiết lập một kho lưu trữ Git,

139
00:12:27,780 --> 00:12:31,930
nơi bạn có thể lưu trữ tất cả các mã này.

140
00:12:31,930 --> 00:12:39,110
Vì vậy, tại dấu nhắc gõ git init để khởi tạo kho Git và

141
00:12:39,110 --> 00:12:45,195
sau đó bạn có thể kiểm tra trạng thái của kho Git và

142
00:12:45,195 --> 00:12:48,655
bạn nhận thấy rằng hai tập tin đã được tạo ra mới.

143
00:12:48,655 --> 00:12:52,651
Vì vậy, chúng ta hãy thêm hai tập tin vào kho lưu trữ Git của chúng tôi

144
00:12:52,651 --> 00:12:56,535
, và tại thời điểm này,

145
00:12:56,535 --> 00:13:00,505
kiểm tra trạng thái git, bạn thấy rằng hai tập tin đã được kiểm tra trong.

146
00:13:00,505 --> 00:13:06,611
Vì vậy, chúng ta hãy làm một cam kết git phá vỡ

147
00:13:06,611 --> 00:13:13,710
thông điệp Simple Node Ví dụ.

148
00:13:13,710 --> 00:13:18,970
Trong phần thứ hai của bài tập này, chúng ta sẽ bây giờ

149
00:13:20,130 --> 00:13:24,330
tạo ra một mô-đun nút trong ví dụ này.

150
00:13:24,330 --> 00:13:29,191
Vì vậy, tại trình soạn thảo, trong trình soạn thảo,

151
00:13:29,191 --> 00:13:34,610
tạo một tập tin có tên rectangle.js.

152
00:13:34,610 --> 00:13:38,130
Và bên trong tập tin này, chúng ta sẽ tạo ra một mô-đun nút.

153
00:13:38,130 --> 00:13:43,100
Vì vậy, chúng tôi sẽ sử dụng

154
00:13:43,100 --> 00:13:47,892
đối tượng xuất khẩu để xuất khẩu hai

155
00:13:47,892 --> 00:13:52,517
giá trị từ mô-đun nút này.

156
00:13:52,517 --> 00:13:59,063
Vì vậy, như bạn đã học được, mỗi tập tin trong một ứng dụng nút trở thành mô-đun nút riêng của nó.

157
00:13:59,063 --> 00:14:02,264
Vì vậy, từ bên trong mô-đun nút hình chữ nhật này,

158
00:14:02,264 --> 00:14:05,909
tôi sẽ xuất hai giá trị, chu vi,

159
00:14:09,841 --> 00:14:15,544
và khu vực.

160
00:14:15,544 --> 00:14:22,080
Bây giờ tôi sẽ đi vào tập tin index.js và sau đó chỉ cần sao chép giá trị này.

161
00:14:24,610 --> 00:14:29,558
Và đó là những gì chúng ta sẽ sử dụng như là xuất khẩu cho

162
00:14:29,558 --> 00:14:33,820
chu vi ở đây và tương tự cho

163
00:14:33,820 --> 00:14:38,495
khu vực tôi sẽ chỉ sao chép này từ

164
00:14:38,495 --> 00:14:44,340
tập tin js chỉ mục và sau đó sử dụng nó cho khu vực.

165
00:14:44,340 --> 00:14:49,498
Vì vậy, bây giờ, chúng tôi có một mô-đun nút đơn giản đã sẵn sàng, đó là xuất khẩu hai giá trị,

166
00:14:49,498 --> 00:14:53,222
chu vi và diện tích từ tập tin rectangle.js này.

167
00:14:53,222 --> 00:14:57,583
Vì vậy, như chúng ta đã học được trong bài giảng, các module nút [không nghe được],

168
00:14:57,583 --> 00:15:02,273
bây giờ một khi bạn tạo ra một mô-đun nút, bạn cần phải nhập mô-đun nút đó

169
00:15:02,273 --> 00:15:05,970
vào một tập tin khác mà bạn muốn sử dụng nó.

170
00:15:05,970 --> 00:15:09,771
Vì vậy, quay trở lại tập tin index.js.

171
00:15:09,771 --> 00:15:17,372
Bây giờ tôi sẽ thay thế toàn bộ điều này bằng cách yêu cầu và

172
00:15:17,372 --> 00:15:22,870
tôi lưu ý rằng mô-đun nút này nằm trong cùng một

173
00:15:22,870 --> 00:15:27,250
thư mục như dự án hiện tại.

174
00:15:27,250 --> 00:15:31,560
Vì vậy, tôi sẽ nói yêu cầu hình chữ nhật và đó là nó.

175
00:15:31,560 --> 00:15:33,900
Vì vậy, thay đổi của tôi bây giờ đã hoàn tất.

176
00:15:33,900 --> 00:15:39,550
Vì vậy, tập tin index.js đặc biệt này sẽ nhập khẩu

177
00:15:39,550 --> 00:15:45,190
mô-đun nút hình chữ nhật mà chúng tôi vừa tạo ra, và sau đó sử dụng nó trong mã của chúng tôi ở đây.

178
00:15:45,190 --> 00:15:46,750
Vì vậy, chúng ta hãy lưu các thay đổi và

179
00:15:46,750 --> 00:15:51,780
sau đó xem ứng dụng của chúng tôi một lần nữa, tại dấu nhắc thiết bị đầu cuối.

180
00:15:51,780 --> 00:15:56,160
Đi đến thiết bị đầu cuối, tại dấu nhắc, gõ npm start.

181
00:15:58,200 --> 00:16:02,100
Bạn sẽ nhận thấy rằng có

182
00:16:02,100 --> 00:16:07,310
phiên bản sửa đổi của ứng dụng này tạo ra chính xác kết quả giống như trước đây.

183
00:16:07,310 --> 00:16:12,229
Với điều này, chúng ta tìm hiểu về cách bạn có thể tạo ra một

184
00:16:12,229 --> 00:16:14,699
mô-đun nút đơn giản trong ứng dụng của chúng tôi.

185
00:16:14,699 --> 00:16:19,781
Bây giờ kiểm tra trạng thái git, bạn sẽ thấy rằng bạn có hai tập tin,

186
00:16:19,781 --> 00:16:25,370
một trong đó đã được sửa đổi, một trong đó mới được thêm vào.

187
00:16:25,370 --> 00:16:30,050
Vì vậy, chúng ta hãy thêm điều này vào kho Git của chúng tôi và

188
00:16:30,050 --> 00:16:34,088
sau đó thực hiện một cam kết git với thông điệp,

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

190
00:16:42,160 --> 00:16:47,823
Và kiểm tra bản ghi git và

191
00:16:47,823 --> 00:16:52,455
bạn sẽ nhận thấy rằng chúng tôi có hai cam kết mà chúng tôi

192
00:16:52,455 --> 00:16:56,987
đã cam kết với kho lưu trữ Git của chúng tôi ở đó.

193
00:16:56,987 --> 00:16:59,468
Với điều này, chúng tôi hoàn thành bài tập này.

194
00:16:59,468 --> 00:17:03,000
Trong bài tập này, chúng ta đã thấy làm thế nào chúng ta có thể viết một ứng dụng nút đơn giản.

195
00:17:03,000 --> 00:17:06,612
Và cũng làm thế nào chúng ta có thể viết một mô-đun nút đơn giản và

196
00:17:06,612 --> 00:17:10,419
sử dụng nó với một tập tin khác trong ứng dụng nút của chúng tôi.

197
00:17:10,419 --> 00:17:16,469
[ NHẠC]