1
00:00:03,920 --> 00:00:09,645
Như chúng ta đã hiểu từ bài giảng trước trong bài học này,

2
00:00:09,645 --> 00:00:12,585
mục tiêu của chúng tôi trong bài học này là

3
00:00:12,585 --> 00:00:16,590
tích hợp máy chủ REST API mà chúng tôi đã phát triển,

4
00:00:16,590 --> 00:00:20,525
cùng với quyền truy cập vào cơ sở dữ liệu MongoDB.

5
00:00:20,525 --> 00:00:24,060
Vì vậy, chúng tôi sẽ bắt đầu với máy chủ REST API

6
00:00:24,060 --> 00:00:27,480
mà chúng tôi xây dựng trong bài học đầu tiên trong mô-đun này,

7
00:00:27,480 --> 00:00:31,770
và sau đó đã học được cách tương tác từ

8
00:00:31,770 --> 00:00:37,220
ứng dụng nút của chúng tôi với máy chủ MongoDB bằng cách sử dụng Mongoose,

9
00:00:37,220 --> 00:00:43,865
chúng tôi sẽ được phát triển máy chủ REST API của chúng tôi hơn nữa để tích hợp

10
00:00:43,865 --> 00:00:50,749
toàn bộ giữa yêu cầu khách hàng đến máy chủ,

11
00:00:50,749 --> 00:00:53,840
tất cả các cách để hoạt động cơ sở dữ liệu tương ứng được thực hiện,

12
00:00:53,840 --> 00:01:00,880
và sau đó xây dựng và gửi trả lời cho khách hàng đó từ trang web máy chủ của chúng tôi.

13
00:01:00,880 --> 00:01:04,125
Để bắt đầu tất nhiên, trước tiên,

14
00:01:04,125 --> 00:01:08,300
hãy vào thư mục máy chủ nhầm lẫn mà chúng tôi đã tạo ra

15
00:01:08,300 --> 00:01:15,215
trong bài tập đầu tiên của mô-đun này trong bài học REST API,

16
00:01:15,215 --> 00:01:17,915
và sau đó, trong thư mục nhầm lẫn,

17
00:01:17,915 --> 00:01:22,310
chúng tôi đã xây dựng máy chủ REST API.

18
00:01:22,310 --> 00:01:26,630
Bây giờ, những gì chúng tôi sẽ làm là mượn

19
00:01:26,630 --> 00:01:32,035
các mô hình mà chúng tôi đã phát triển trong bài tập trước,

20
00:01:32,035 --> 00:01:36,050
tập tin dishes.js mà chúng tôi đã phát triển trong bài tập trước,

21
00:01:36,050 --> 00:01:41,220
sao chép vào dự án máy chủ nhầm lẫn,

22
00:01:41,220 --> 00:01:44,430
và cũng có thể cài đặt Bluebird Mongoose,

23
00:01:44,430 --> 00:01:51,225
và một mô-đun khác được gọi là Mongoose tiền tệ, để dự án của chúng tôi.

24
00:01:51,225 --> 00:01:54,275
Vì vậy, đi đến thư mục nút JS của

25
00:01:54,275 --> 00:01:57,050
chúng tôi, đầu tiên chúng ta đi vào thư mục nút Mongoose,

26
00:01:57,050 --> 00:02:01,970
và chúng ta thấy rằng trong thư mục con mô hình của thư mục nút Mongoose,

27
00:02:01,970 --> 00:02:03,810
chúng ta có tệp dishes.js.

28
00:02:03,810 --> 00:02:07,354
Tôi sẽ chỉ sao chép thư mục mô hình,

29
00:02:07,354 --> 00:02:10,490
và sau đó đi qua thư mục máy chủ nhầm lẫn,

30
00:02:10,490 --> 00:02:13,910
và sau đó chỉ cần xuyên qua thư mục mô hình trong đó.

31
00:02:13,910 --> 00:02:15,690
Vì vậy, một khi chúng tôi làm điều đó,

32
00:02:15,690 --> 00:02:22,540
sau đó các tập tin dishes.js có chứa giản đồ và mô hình cho các món ăn tài liệu,

33
00:02:22,540 --> 00:02:28,155
được tích hợp vào máy chủ REST API của chúng tôi.

34
00:02:28,155 --> 00:02:30,890
Tất nhiên, để tận dụng điều đó,

35
00:02:30,890 --> 00:02:34,400
chúng ta cần cài đặt mô-đun nút Mongoose,

36
00:02:34,400 --> 00:02:40,990
và một mô-đun nút mới được gọi là tiền tệ Mongoose vào dự án của chúng tôi.

37
00:02:40,990 --> 00:02:47,510
Vì vậy, đi đến thiết bị đầu cuối trong dự án máy chủ nhầm lẫn,

38
00:02:47,510 --> 00:02:52,640
hãy chắc chắn rằng thiết bị đầu cuối của bạn hoặc cửa sổ lệnh nằm

39
00:02:52,640 --> 00:02:57,480
trong dự án máy chủ nhầm lẫn nơi bạn phát triển API REST trước đó,

40
00:02:57,480 --> 00:03:01,070
và trong dự án này, hãy cài đặt.

41
00:03:01,070 --> 00:03:06,165
Vì vậy, chúng tôi sẽ làm npm cài đặt Mongoose,

42
00:03:06,165 --> 00:03:13,110
và sau đó, một mô-đun nút mới được gọi là tiền tệ Mongoose.

43
00:03:13,250 --> 00:03:16,630
Mô-đun nút tiền tệ Mongoose,

44
00:03:16,630 --> 00:03:21,800
và nhìn thấy trong loại Schema khác để ứng dụng Mongoose của chúng tôi,

45
00:03:21,800 --> 00:03:23,770
vì vậy các Mongoose chính nó,

46
00:03:23,770 --> 00:03:26,390
đã chắc chắn đã được xây dựng trong các loại Schema.

47
00:03:26,390 --> 00:03:29,505
Chúng ta đã thấy việc sử dụng

48
00:03:29,505 --> 00:03:35,550
số, chuỗi và boolean, và mảng.

49
00:03:35,550 --> 00:03:39,760
Bây giờ, đồng tiền Mongoose thêm vào hỗ trợ tiền tệ.

50
00:03:39,760 --> 00:03:42,385
Bây giờ, tại sao chúng ta cần hỗ trợ tiền tệ này?

51
00:03:42,385 --> 00:03:49,040
Vì vậy, mô-đun tiền tệ Mongoose thêm một loại mới được gọi là loại tiền tệ,

52
00:03:49,040 --> 00:03:53,140
cho phép chúng tôi lưu trữ một giá trị tiền tệ.

53
00:03:53,140 --> 00:03:56,650
Vì món ăn của chúng tôi sẽ chứa một mức giá,

54
00:03:56,650 --> 00:04:00,760
đó là lý do tại sao tôi sẽ sử dụng mô-đun tiền tệ Mongoose ở đây.

55
00:04:00,760 --> 00:04:04,590
Bây giờ, bài tập ở đây,

56
00:04:04,590 --> 00:04:07,545
chúng tôi sẽ minh họa việc sử dụng các mô-đun tiền tệ Mongoose,

57
00:04:07,545 --> 00:04:11,880
bạn có thể đọc thêm chi tiết về mô-đun nút tiền tệ Mongoose cũng,

58
00:04:11,880 --> 00:04:19,010
trong tài liệu về một liên kết mà được cung cấp trong các nguồn lực bổ sung.

59
00:04:19,010 --> 00:04:22,489
Vì vậy, bây giờ chúng ta đã cài đặt các module nút,

60
00:04:22,489 --> 00:04:24,890
Mongoose và tiền tệ Mongoose, chúng

61
00:04:24,890 --> 00:04:33,920
ta hãy đi đến ứng dụng của chúng tôi và thiết lập nó để giao tiếp với máy chủ MongoDB.

62
00:04:33,920 --> 00:04:37,570
Bây giờ, hãy chắc chắn rằng máy chủ MongoDB của bạn đang hoạt động và chạy.

63
00:04:37,570 --> 00:04:40,070
Vì vậy, ở đây, bạn thấy rằng

64
00:04:40,070 --> 00:04:44,730
máy chủ MongoDB của tôi đang chạy trong một tab thiết bị đầu cuối trên máy tính của tôi.

65
00:04:44,730 --> 00:04:46,670
Nếu bạn đang chạy nó trên một máy Windows,

66
00:04:46,670 --> 00:04:54,005
hãy chắc chắn rằng nó đang chạy trong một lệnh khác Cửa sổ máy tính Windows của bạn.

67
00:04:54,005 --> 00:04:58,525
Đi đến ứng dụng của chúng tôi trong trình soạn thảo,

68
00:04:58,525 --> 00:05:01,685
trước tiên chúng tôi sẽ bắt đầu với tệp app.js.

69
00:05:01,685 --> 00:05:03,460
Bây giờ trong tập tin app.js,

70
00:05:03,460 --> 00:05:07,590
đây là nơi chúng tôi xây dựng ứng dụng nhanh của chúng tôi trước đó.

71
00:05:07,590 --> 00:05:12,935
Nhưng bây giờ, sự phủ định hút thêm này không được kết nối với máy chủ MongoDB back-end.

72
00:05:12,935 --> 00:05:18,085
Chúng tôi sẽ sử dụng mô-đun Mongoose,

73
00:05:18,085 --> 00:05:20,430
để thiết lập kết nối với máy chủ.

74
00:05:20,430 --> 00:05:22,385
Vì vậy, đi vào đây,

75
00:05:22,385 --> 00:05:29,540
tôi sẽ thêm vào yêu cầu mô-đun Mongoose ở đây.

76
00:05:29,540 --> 00:05:35,850
Vì vậy, chúng ta sẽ nói, “Const Mongoose yêu cầu Mongoose.”

77
00:05:38,120 --> 00:05:43,280
Và sau đó cũng, vì chúng tôi đã sao chép qua thư mục mô hình,

78
00:05:43,280 --> 00:05:46,520
chứa tệp đĩa,

79
00:05:46,520 --> 00:05:51,220
trong đó tuyên bố lược đồ món ăn và mô hình.

80
00:05:51,220 --> 00:05:56,645
Vì vậy, để tôi nhập khẩu các món ăn.

81
00:05:56,645 --> 00:06:04,930
Vì vậy, chúng ta sẽ nói, “Require.Slash mô hình các món ăn.”

82
00:06:04,930 --> 00:06:07,640
Vì vậy, một khi chúng tôi đã hoàn thành điều đó, bây giờ tất nhiên,

83
00:06:07,640 --> 00:06:11,000
chúng ta cần thiết lập kết nối với máy chủ.

84
00:06:11,000 --> 00:06:13,560
Vì vậy, thiết lập

85
00:06:14,120 --> 00:06:24,960
URL mongodb// localhost7017/nhầm lẫn,

86
00:06:27,340 --> 00:06:31,150
giống như chúng tôi đã làm với bài tập Mongoose,

87
00:06:31,150 --> 00:06:33,140
và sau đó chúng tôi sẽ nói,

88
00:06:33,140 --> 00:06:44,040
“Const kết nối, URL kết nối của Mongo”.

89
00:06:44,040 --> 00:06:51,450
Vì vậy, đây là chính xác cùng một mã mà chúng tôi đã sử dụng trong bài tập trước đó.

90
00:06:51,450 --> 00:06:53,640
Sau đó, chúng ta hãy thiết lập kết nối.

91
00:06:53,640 --> 00:07:01,695
Vì vậy, chúng tôi sẽ nói, “kết nối” và sau đó chúng tôi sẽ nói,

92
00:07:01,695 --> 00:07:11,610
“DB làm điều đó giao diện điều khiển log.”

93
00:07:11,610 --> 00:07:19,030
Nói rằng, “Kết nối đúng với máy chủ.”

94
00:07:21,020 --> 00:07:26,260
Và chúng tôi cũng sẽ xử lý lỗi ở đây.

95
00:07:33,980 --> 00:07:40,855
Chúng tôi sẽ chỉ đơn giản là làm một bản ghi giao diện điều khiển lỗi ở đây, đó là nó.

96
00:07:40,855 --> 00:07:49,110
Điều đó sẽ thiết lập kết nối với máy chủ từ tệp app.js của chúng tôi.

97
00:07:49,110 --> 00:07:52,375
Vì vậy, một khi chúng tôi đã thiết lập kết nối với máy chủ,

98
00:07:52,375 --> 00:07:58,615
sau đó, chúng ta hãy mở tập tin dishes.js từ các mô hình của chúng tôi.

99
00:07:58,615 --> 00:08:00,995
Bây giờ, trong tập tin dishes.js,

100
00:08:00,995 --> 00:08:02,970
để sử dụng

101
00:08:02,970 --> 00:08:11,760
mô-đun nút mà chúng tôi vừa cài đặt.

102
00:08:11,760 --> 00:08:18,990
Vì vậy, chúng ta sẽ nói, “Yêu cầu tiền tệ Mongoose”, và nói,

103
00:08:18,990 --> 00:08:26,500
“Tải loại và Mongoose.”

104
00:08:26,500 --> 00:08:32,670
Vì vậy, điều này sẽ làm là tải loại tiền tệ mới này vào Mongoose.

105
00:08:32,670 --> 00:08:39,970
Sau đó, chúng ta có thể nói const,

106
00:08:39,970 --> 00:08:48,705
tiền tệ Mongoose loại tiền tệ.

107
00:08:48,705 --> 00:08:51,720
Đó là nó. Vì vậy, loại mới này,

108
00:08:51,720 --> 00:08:57,880
loại tiền tệ được thêm vào Mongoose và đó sẽ thêm vào một loại mới được gọi là

109
00:08:57,880 --> 00:09:00,160
tiền tệ và sau đó vì vậy tôi sẽ tuyên bố loại

110
00:09:00,160 --> 00:09:04,840
tiền tệ liên tục này là loại tiền tệ của Mongoose.

111
00:09:04,840 --> 00:09:11,630
Vì vậy mà tôi có thể sử dụng điều này trong việc xác định giản đồ trong ứng dụng của tôi.

112
00:09:11,630 --> 00:09:14,270
Bây giờ, trong trường hợp này,

113
00:09:14,270 --> 00:09:17,970
giản đồ phổ biến sẽ vẫn giống hệt như trước đây nhưng

114
00:09:17,970 --> 00:09:24,060
giản đồ món ăn như bạn nhớ lại từ tập tin db.json.

115
00:09:24,060 --> 00:09:28,050
Khi bạn nhìn vào cấu trúc của một tài liệu món ăn,

116
00:09:28,050 --> 00:09:35,630
bạn thấy rằng tài liệu món ăn chứa tên và hình ảnh mà bạn thấy ở đây là một chuỗi,

117
00:09:35,630 --> 00:09:38,570
một danh mục, một nhãn,

118
00:09:38,570 --> 00:09:42,555
một giá cả, mà là một loại chuỗi ở đây.

119
00:09:42,555 --> 00:09:46,865
Nhưng chúng tôi sẽ tuyên bố điều này như là một loại tiền tệ,

120
00:09:46,865 --> 00:09:51,495
một tính năng mà như bạn mong đợi là một biến Boolean,

121
00:09:51,495 --> 00:09:55,015
và một mô tả mà là một chuỗi và sau đó nhận xét

122
00:09:55,015 --> 00:09:59,755
mà là không có gì ngoài một mảng của loại ý kiến.

123
00:09:59,755 --> 00:10:05,790
Bây giờ, vì vậy những gì chúng ta sẽ làm bây giờ là mở rộng giản đồ món ăn để

124
00:10:05,790 --> 00:10:12,865
hỗ trợ tất cả các thuộc tính khác nhau hoặc các lĩnh vực khác nhau trong tài liệu json của tôi.

125
00:10:12,865 --> 00:10:15,225
Vì vậy, chúng tôi đã có tên.

126
00:10:15,225 --> 00:10:18,505
Vì vậy, chúng tôi đã có mô tả tại chỗ.

127
00:10:18,505 --> 00:10:23,730
Vì vậy, chúng ta cần phải thêm trong vài tiếp theo trong đó chúng tôi đã có các ý kiến,

128
00:10:23,730 --> 00:10:27,185
mảng ý kiến của kiểu giản đồ bình luận ở đó.

129
00:10:27,185 --> 00:10:30,075
Vì vậy, chúng tôi sẽ thêm vào trong vài tiếp theo.

130
00:10:30,075 --> 00:10:34,150
Vì vậy, một trong những tiếp theo chúng tôi sẽ thêm vào là loại hình ảnh,

131
00:10:34,150 --> 00:10:37,640
mà sẽ là

132
00:10:37,640 --> 00:10:44,300
của chuỗi loại và

133
00:10:44,300 --> 00:10:49,140
chúng tôi sẽ nói yêu cầu true.

134
00:10:49,200 --> 00:10:52,240
Vì vậy, điều này cho biết thêm các loại hình ảnh.

135
00:10:52,240 --> 00:11:00,460
Tiếp theo mà tôi sẽ thêm là thể loại

136
00:11:00,460 --> 00:11:03,865
, cũng là loại chuỗi.

137
00:11:03,865 --> 00:11:07,990
Cái tiếp theo là nhãn

138
00:11:07,990 --> 00:11:10,720
, cũng là loại chuỗi này.

139
00:11:10,720 --> 00:11:14,560
Vì tất cả những thứ này cùng loại và bắt buộc,

140
00:11:14,560 --> 00:11:16,625
tôi chỉ sao chép chúng ở đây.

141
00:11:16,625 --> 00:11:18,464
Sau đó, đối với nhãn,

142
00:11:18,464 --> 00:11:21,275
tôi sẽ nói rằng điều này là không bắt buộc nhưng

143
00:11:21,275 --> 00:11:26,945
thay vào đó tôi cũng có thể chỉ định một giá trị mặc định nếu tôi muốn.

144
00:11:26,945 --> 00:11:29,465
Vì vậy, tôi có thể chỉ định một giá trị mặc định như thế.

145
00:11:29,465 --> 00:11:31,965
Giá trị mặc định là một chuỗi rỗng.

146
00:11:31,965 --> 00:11:37,245
Vì vậy, nếu tôi không chỉ định yêu cầu tôi chỉ có thể chỉ định một giá trị mặc định ở đây.

147
00:11:37,245 --> 00:11:46,300
Bây giờ, ngoài ra, lĩnh vực tiếp theo mà tôi sẽ giới thiệu là lĩnh vực giá.

148
00:11:47,070 --> 00:11:53,575
Trường giá tôi sẽ khai báo loại là tiền tệ.

149
00:11:53,575 --> 00:11:57,085
Nhớ lại rằng chúng tôi đã tuyên bố loại tiền tệ trước đó

150
00:11:57,085 --> 00:12:00,380
ở đây bằng cách đầu tiên yêu cầu

151
00:12:00,380 --> 00:12:03,960
mô-đun tiền tệ Mongoose và sau đó khai báo loại tiền tệ.

152
00:12:03,960 --> 00:12:09,435
Vì vậy, đó là cách bạn sẽ sử dụng loại tiền tệ trong ứng dụng của chúng tôi.

153
00:12:09,435 --> 00:12:16,170
Vì vậy, chúng tôi sẽ nói loại tiền tệ giá và

154
00:12:16,170 --> 00:12:24,610
bắt buộc là đúng và sau đó tôi cũng có thể xác định giá trị tối thiểu đó sẽ là zero.

155
00:12:24,610 --> 00:12:29,590
Sau đó, trường tiếp

156
00:12:29,590 --> 00:12:35,830
theo là trường nổi bật sẽ thuộc loại Boolean,

157
00:12:35,830 --> 00:12:40,900
và giá trị mặc định sẽ là false.

158
00:12:40,900 --> 00:12:43,625
Vì vậy, nếu tài liệu của tôi bị thiếu,

159
00:12:43,625 --> 00:12:47,940
sau đó giá trị mặc định sẽ được thêm vào tài liệu ở đây.

160
00:12:47,940 --> 00:12:50,470
Vì vậy

161
00:12:50,470 --> 00:12:56,825
, lưu ý rằng bây giờ tôi đã mở rộng lược đồ món ăn bằng cách thêm vào loại hình ảnh, thể loại,

162
00:12:56,825 --> 00:13:01,710
nhãn, giá cả và tính năng để phù hợp với

163
00:13:01,710 --> 00:13:07,925
cấu trúc của ví dụ tài liệu món ăn mà tôi vừa cho bạn thấy trước đó.

164
00:13:07,925 --> 00:13:13,795
Vì vậy, bây giờ, lược đồ món ăn của tôi đã sẵn sàng để được sử dụng.

165
00:13:13,795 --> 00:13:20,185
Vì vậy, bây giờ chúng ta hãy bắt đầu làm việc trên bộ định tuyến của tôi.

166
00:13:20,185 --> 00:13:21,915
Vậy bộ định tuyến ở đâu?

167
00:13:21,915 --> 00:13:29,530
Bạn nhớ lại rằng bộ định tuyến hỗ trợ các điểm cuối REST API cho các món ăn gạch chéo, điểm

168
00:13:29,530 --> 00:13:32,110
cuối REST API và các món ăn

169
00:13:32,110 --> 00:13:35,170
gạch chéo, điểm cuối ID món ăn nằm trong bộ định tuyến món ăn.

170
00:13:35,170 --> 00:13:41,295
Vì vậy, chúng tôi sẽ đi đến router.jsfile món ăn và sau đó chúng tôi sẽ mở rộng tập tin router.js món ăn.

171
00:13:41,295 --> 00:13:46,735
Vì vậy, trong bộ định tuyến món ăn cùng với Express và BodyParser,

172
00:13:46,735 --> 00:13:55,310
bây giờ tôi sẽ bao gồm Mongoose.

173
00:13:56,640 --> 00:14:03,370
Vì vậy, chúng tôi sẽ nói yêu cầu Mongoose và

174
00:14:03,370 --> 00:14:10,944
sau đó chúng tôi sẽ yêu cầu mô hình món ăn.

175
00:14:10,944 --> 00:14:12,400
Mô hình món ăn ở đâu?

176
00:14:12,400 --> 00:14:20,080
Nó đang ở trong. /mô hình/món ăn.

177
00:14:20,080 --> 00:14:22,405
Vì vậy, nó ở trong đó.

178
00:14:22,405 --> 00:14:24,470
Vì vậy, lưu ý rằng chúng tôi đang ở trong thư mục của bộ định tuyến,

179
00:14:24,470 --> 00:14:27,610
vì vậy bạn cần phải đi lên một cấp độ và sau đó đi

180
00:14:27,610 --> 00:14:31,460
vào thư mục của mô hình và sau đó tập tin dishes.js là ngay ở đó.

181
00:14:31,460 --> 00:14:34,010
Vì vậy, đó là những gì chúng tôi đang nhập khẩu ở đây.

182
00:14:34,010 --> 00:14:41,039
Vì vậy, bây giờ, tôi có thể cập nhật bộ định tuyến món ăn của tôi để có thể tương tác

183
00:14:41,039 --> 00:14:46,330
với máy chủ

184
00:14:46,330 --> 00:14:52,175
MongoDB bằng cách sử dụng Mongoose và chúng tôi đã nhập khẩu mô hình món ăn vào bộ định tuyến món ăn của tôi.

185
00:14:52,175 --> 00:14:57,720
Vì vậy, đó là thời gian cho tôi để đi và cập nhật tất cả các phương pháp trong đây.

186
00:14:57,720 --> 00:14:59,465
Vì vậy, đối với các bộ định tuyến món ăn,

187
00:14:59,465 --> 00:15:03,665
dấu gạch chéo có nghĩa là các món ăn gạch chéo điểm cuối.

188
00:15:03,665 --> 00:15:07,880
Tôi sẽ loại bỏ tất cả điều này từ đây, thay vào đó,

189
00:15:07,880 --> 00:15:12,040
tôi sẽ tuyên bố rõ ràng tất cả các điểm cuối khác nhau.

190
00:15:12,040 --> 00:15:16,995
Để có được bài đặt và xóa tôi sẽ xử lý mỗi một trong số họ một cách độc lập.

191
00:15:16,995 --> 00:15:19,135
Vì vậy, trong phương pháp get,

192
00:15:19,135 --> 00:15:24,360
tôi sẽ cắt ra và sau đó trong phương pháp get, tôi cần phải làm gì?

193
00:15:24,360 --> 00:15:32,760
Nhớ lại rằng chúng tôi đã xác định phương pháp từ Mongoose cho phép chúng tôi tìm thấy tất cả các món ăn.

194
00:15:32,760 --> 00:15:36,365
Vì vậy, khi bạn thực hiện một hoạt động get trên điểm cuối món ăn gạch chéo,

195
00:15:36,365 --> 00:15:39,600
bạn đang mong đợi tất cả các món ăn được trả lại

196
00:15:39,600 --> 00:15:44,005
cho khách hàng để đáp ứng với yêu cầu get.

197
00:15:44,005 --> 00:15:49,890
Vì vậy, tôi sẽ đi đến các món ăn và sau đó thực hiện các hoạt động tìm kiếm.

198
00:15:49,890 --> 00:15:53,040
Vì vậy, bây giờ bạn thấy rằng từ máy chủ Express của tôi,

199
00:15:53,040 --> 00:15:58,585
tôi đang truy cập MongoDB của tôi.

200
00:15:58,585 --> 00:16:06,520
Vì vậy, sẽ làm một phát hiện và trong tìm thấy tôi sẽ bây giờ xử lý các yêu cầu.

201
00:16:06,520 --> 00:16:08,310
Vì vậy, tôi có thể nói món ăn tìm thấy,

202
00:16:08,310 --> 00:16:13,885
vì nó sẽ trả lại một lời hứa,

203
00:16:13,885 --> 00:16:16,765
sau đó tôi có thể xử lý nó bên trong đây.

204
00:16:16,765 --> 00:16:24,520
Vì vậy, tôi sẽ nói món ăn và vì vậy nếu lời hứa giải quyết một cách chính xác,

205
00:16:24,520 --> 00:16:33,529
tôi sẽ nhận được nó trong sau đó và vì vậy tôi sẽ nói món ăn và sau đó vì vậy chúng tôi sẽ xử lý

206
00:16:33,960 --> 00:16:41,125
mã trạng thái res là 200 và sau đó chúng tôi sẽ nói

207
00:16:41,125 --> 00:16:48,920
res thiết lập tiêu đề loại nội dung.

208
00:16:53,100 --> 00:16:57,830
Kể từ khi chúng ta sẽ được trả về giá trị như một json,

209
00:16:57,830 --> 00:17:00,770
vì vậy chúng tôi sẽ thiết lập để ứng dụng json.

210
00:17:00,770 --> 00:17:03,580
Được rồi, điều này sẽ trả lại một loạt các món ăn.

211
00:17:03,580 --> 00:17:07,955
Vì vậy, tôi chỉ có thể nói các món ăn và sau đó chúng tôi sẽ nói res.json.

212
00:17:07,955 --> 00:17:12,650
Vì vậy, res.json sẽ mất như một đầu vào trong json string

213
00:17:12,650 --> 00:17:17,680
và sau đó gửi nó trở lại cho khách hàng của tôi.

214
00:17:17,680 --> 00:17:21,785
Vì vậy, khi bạn gọi res.json và cung cấp giá trị và sau đó nó sẽ chỉ đơn giản là

215
00:17:21,785 --> 00:17:27,650
lấy tham số mà bạn cung cấp ở đây và sau đó gửi nó trở lại như một phản ứng json.

216
00:17:27,650 --> 00:17:30,365
Nó sẽ đưa các món ăn này vào trong cơ thể

217
00:17:30,365 --> 00:17:33,835
của tin nhắn trả lời và sau đó gửi nó trở lại máy chủ.

218
00:17:33,835 --> 00:17:39,560
Bây giờ, chúng ta có thể xử lý lỗi

219
00:17:39,560 --> 00:17:47,370
ở đây bằng cách nói lỗi tiếp theo.

220
00:17:48,100 --> 00:17:59,140
Chúng tôi cũng có thể làm một lỗi bắt chỉ vì lợi ích của hoàn thành.

221
00:17:59,140 --> 00:18:03,290
Tôi sẽ chỉ đặt cả hai cái này vào vị trí ở đây,

222
00:18:03,290 --> 00:18:05,960
để cả hai sẽ được xử lý như vậy.

223
00:18:05,960 --> 00:18:08,305
Vì vậy, nếu một lỗi được trả lại,

224
00:18:08,305 --> 00:18:11,740
sau đó sẽ chỉ đơn giản là vượt qua lỗi để

225
00:18:11,740 --> 00:18:15,260
xử lý lỗi tổng thể cho ứng dụng của tôi

226
00:18:15,260 --> 00:18:18,985
và để cho rằng lo lắng về làm thế nào để xử lý các lỗi.

227
00:18:18,985 --> 00:18:21,490
Vì vậy, chúng tôi sẽ gửi nó cho điều đó.

228
00:18:21,490 --> 00:18:28,610
Vì vậy, bạn thấy làm thế nào tôi đang sử dụng các hoạt động tìm và sau đó thực hiện các yêu cầu ở đây.

229
00:18:28,610 --> 00:18:30,595
Bây giờ, cho bài đăng,

230
00:18:30,595 --> 00:18:32,904
như bạn đã mong đợi,

231
00:18:32,904 --> 00:18:37,100
tôi sẽ làm món dịch.Create

232
00:18:38,790 --> 00:18:43,425
bởi vì chúng tôi sẽ tạo ra một món ăn mới ở đây.

233
00:18:43,425 --> 00:18:47,195
Vì vậy, nhớ lại rằng chúng ta đã được nhìn thấy các món ăn tạo ra

234
00:18:47,195 --> 00:18:52,400
phương pháp sử dụng trước đó và nhớ rằng phân tích cú pháp cơ thể sẽ

235
00:18:52,400 --> 00:18:56,950
đã phân tích bất cứ điều gì là trong cơ thể của thông điệp và nạp nó

236
00:18:56,950 --> 00:19:01,510
vào tài sản cơ thể của yêu cầu.

237
00:19:01,510 --> 00:19:08,650
Vì vậy, tôi chỉ đi để lấy cơ thể yêu cầu và sau đó phân tích cú pháp nó trong như một tham số để

238
00:19:08,650 --> 00:19:16,120
phương pháp dishes.create của tôi và xử lý giá trị trả về.

239
00:19:16,120 --> 00:19:21,325
Vì vậy, chúng tôi sẽ nói sau đó và nó sẽ trả lại

240
00:19:21,325 --> 00:19:26,755
một món ăn và chúng tôi sẽ xử lý nó ở đây.

241
00:19:26,755 --> 00:19:35,220
Vì vậy, chúng tôi sẽ nói nếu các món ăn trở lại một cách chính xác và nếu các món ăn được đăng chính xác, sẽ nói res.

242
00:19:36,060 --> 00:19:43,045
Được rồi, chúng ta hãy làm một console.log cho việc sử dụng riêng của chúng ta.

243
00:19:43,045 --> 00:19:52,330
Ở phía máy chủ chúng tôi sẽ làm một console.log nói “Dish Created” món ăn ở đây.

244
00:19:52,330 --> 00:20:02,125
Hãy đăng nhập món ăn đó vào giao diện điều khiển và sau đó chúng tôi sẽ nói hai mã trạng thái nghỉ ngơi này.

245
00:20:02,125 --> 00:20:09,820
Chúng tôi sẽ chỉ sao chép mã đó và sau đó dán nó vào đó và trong trường hợp này,

246
00:20:09,820 --> 00:20:12,445
chúng tôi đang trả lại món ăn ở đây.

247
00:20:12,445 --> 00:20:16,480
Các món ăn đã đến như một tham số ở đây và sau đó để cho

248
00:20:16,480 --> 00:20:22,825
khách hàng đối phó với giá trị đó ở phía khách hàng,

249
00:20:22,825 --> 00:20:24,985
bất cứ điều gì được trả lại trong món ăn.

250
00:20:24,985 --> 00:20:27,745
Bây giờ, họ cũng sẽ thêm vào

251
00:20:27,745 --> 00:20:41,770
đây và sau đó là bắt.

252
00:20:41,770 --> 00:20:44,860
Vì vậy, đây là cách chúng tôi xử lý bài đăng.

253
00:20:44,860 --> 00:20:47,830
Đối với PUT, bởi vì PUT không được phép, vì

254
00:20:47,830 --> 00:20:50,365
vậy chúng tôi sẽ để nó như vậy.

255
00:20:50,365 --> 00:20:54,250
Đối với DELETE, chúng tôi sẽ xóa tất cả các món ăn.

256
00:20:54,250 --> 00:21:02,240
Vì vậy, chúng ta sẽ nói, “Dất.Bỏ đi.”

257
00:21:03,990 --> 00:21:08,185
Đây thực chất là một hoạt động nguy hiểm.

258
00:21:08,185 --> 00:21:11,080
Vì vậy, bạn đang loại bỏ tất cả các món ăn từ

259
00:21:11,080 --> 00:21:18,610
máy chủ và vì vậy chúng tôi sẽ nói,

260
00:21:18,610 --> 00:21:25,600
“Dishes.Remove then” và “then” sẽ nhận được một số phản ứng.

261
00:21:25,600 --> 00:21:32,200
Vì vậy, chúng tôi sẽ chỉ nói, “resp ở đây” và cách chúng tôi sẽ xử lý

262
00:21:32,200 --> 00:21:40,550
phản ứng đó chỉ đơn giản là lấy giá trị đó và sau đó trả lại cho khách hàng.

263
00:21:40,620 --> 00:21:48,550
Vì vậy, chúng tôi sẽ nói, “res.StatusCode 200 loại nội dung ứng dụng json,” và

264
00:21:48,550 --> 00:21:56,660
sau đó chúng tôi sẽ chỉ đơn giản gửi phản hồi trở lại cho khách hàng và chúng tôi sẽ xử lý các lỗi

265
00:22:06,000 --> 00:22:08,830
giống như chúng tôi đã làm trước đó.

266
00:22:08,830 --> 00:22:10,390
Đó là thao tác DELETE.

267
00:22:10,390 --> 00:22:14,110
Vì vậy, bạn thấy rằng bây giờ chúng tôi đang làm GET,

268
00:22:14,110 --> 00:22:17,545
POST, PUT và các hoạt động DELETE.

269
00:22:17,545 --> 00:22:26,425
Bây giờ chúng ta sẽ tiếp tục cùng với điểm kết thúc /disHid.

270
00:22:26,425 --> 00:22:28,270
Vì vậy, trong trường hợp này,

271
00:22:28,270 --> 00:22:34,040
chúng tôi đặc biệt motif nhận được một món ăn cụ thể.

272
00:22:34,040 --> 00:22:39,480
Chúng ta sẽ trả lại giá trị món ăn cụ thể đó.

273
00:22:39,480 --> 00:22:41,445
Vì vậy, trong GET,

274
00:22:41,445 --> 00:22:51,275
những gì chúng ta làm là chúng ta sẽ nói “Dishes.FindbyID.

275
00:22:51,275 --> 00:22:57,965
Vì vậy, FindByID là một phương pháp có sẵn từ mongo cũng như trình điều khiển MongoDB.

276
00:22:57,965 --> 00:23:02,020
Vì vậy, chúng ta sẽ nói,” Req.params.Dishid.”

277
00:23:03,600 --> 00:23:11,030
Nhớ lại rằng chúng ta đã biết rằng ID món ăn có trong tài sản params.

278
00:23:11,030 --> 00:23:14,140
Bạn đã học được về điều này trước đó.

279
00:23:14,140 --> 00:23:20,260
Vì vậy, tôi sẽ nói, “findByID (Req.params.dishid)” và

280
00:23:20,260 --> 00:23:24,565
sau đó và khác.

281
00:23:24,565 --> 00:23:30,520
Vì vậy, tôi chỉ sẽ sao chép điều đó sau đó và người khác từ ngay

282
00:23:30,520 --> 00:23:38,170
đó và sau đó đi xuống DishRouter và

283
00:23:38,170 --> 00:23:46,150
sau đó chỉ cần dán nó vào đây.

284
00:23:46,150 --> 00:23:49,190
Vì vậy, chúng tôi sẽ nói, "res.StatusCode200

285
00:23:49,440 --> 00:23:55,585
ứng dụng json.res.jsondish và sau đó xử lý lỗi.

286
00:23:55,585 --> 00:24:05,350
Đối với POST, rõ ràng chúng tôi sẽ không được xử lý các bài đăng cho một điểm cuối /disHid.

287
00:24:05,350 --> 00:24:07,635
Vì vậy, chúng ta sẽ để nó như vậy.

288
00:24:07,635 --> 00:24:12,740
Đối với PUT, chúng tôi sẽ cập nhật

289
00:24:12,740 --> 00:24:17,975
một món ăn cụ thể được xác định bởi ID món ăn của nó.

290
00:24:17,975 --> 00:24:25,270
Vì vậy, đây là nơi chúng tôi sẽ sử dụng các món ăn. FindByidanDupdate.

291
00:24:25,270 --> 00:24:27,690
Vì vậy, đây là phương pháp mà chúng ta sẽ được sử dụng,

292
00:24:27,690 --> 00:24:35,539
findByidanDupDate và điều này mất như là tham số đầu tiên

293
00:24:37,410 --> 00:24:44,410
req.params.dishid và giá trị thứ hai là

294
00:24:44,410 --> 00:24:53,290
thiết lập và cập nhật

295
00:24:53,290 --> 00:24:55,150
sẽ được trong nội dung của thông điệp.

296
00:24:55,150 --> 00:24:57,580
Vì vậy, tôi chỉ sẽ lấy từ

297
00:24:57,580 --> 00:25:05,410
cơ thể req và sau đó cũng là lá cờ khác mà tôi sẽ có.

298
00:25:05,410 --> 00:25:10,840
Vì vậy, sẽ nói, “new: true”, để phương pháp findByID này sẽ trả về

299
00:25:10,840 --> 00:25:18,730
các món ăn được cập nhật như một chuỗi json trong bài trả lời.

300
00:25:18,730 --> 00:25:23,650
Vì vậy, đó là những gì tôi sẽ nhận được ở đây và sau đó khi giá trị đó đến,

301
00:25:23,650 --> 00:25:26,230
tôi sẽ chỉ lấy món ăn và

302
00:25:26,230 --> 00:25:39,040
sau đó chỉ đơn giản là trả lại món ăn cho phía khách hàng.

303
00:25:39,040 --> 00:25:47,095
Vì vậy, tôi sẽ nói res.jason (món ăn) và sau đó chúng tôi sẽ xử lý các lỗi tương ứng.

304
00:25:47,095 --> 00:25:49,090
Cuối cùng cho DELETE.

305
00:25:49,090 --> 00:25:50,695
Đối với DELETE một lần nữa,

306
00:25:50,695 --> 00:25:54,880
phương pháp tương ứng mà chúng ta sẽ được

307
00:25:54,880 --> 00:26:01,165
sử dụng là phương pháp của Mongo gọi là findByIdAndRemove.

308
00:26:01,165 --> 00:26:03,760
Vì vậy, bạn có thể thấy rằng chúng tôi có phương pháp này gọi là

309
00:26:03,760 --> 00:26:08,080
findByidandRemove và này findByidandRemove,

310
00:26:08,080 --> 00:26:18,355
sẽ mất req.params.dishid bởi vì đó là món ăn mà chúng tôi đang cố gắng để loại bỏ.

311
00:26:18,355 --> 00:26:20,970
Sau đó, khi điều này bị xóa,

312
00:26:20,970 --> 00:26:23,940
vì vậy giống như chúng tôi xử lý điều này ở đây,

313
00:26:23,940 --> 00:26:30,830
vì vậy tôi sẽ chỉ sao chép mã này từ các món dịch.Remove.

314
00:26:30,830 --> 00:26:34,350
Là điều tương tự mà tôi sẽ làm ở đây cũng.

315
00:26:34,350 --> 00:26:38,750
Vì vậy, FindByidandRemove và bất cứ phản ứng nào

316
00:26:38,750 --> 00:26:41,970
tôi nhận được, tôi sẽ trả lại cho khách hàng của tôi.

317
00:26:41,970 --> 00:26:45,490
Với điều này, chúng tôi đã cập nhật DishRouter.

318
00:26:45,490 --> 00:26:49,960
Hãy lưu tất cả các thay đổi mà chúng tôi đã thực hiện cho

319
00:26:49,960 --> 00:26:57,185
đến nay và sau đó chúng tôi sẽ đi và khởi động máy chủ của chúng tôi và sau đó xem những gì nó làm.

320
00:26:57,185 --> 00:27:01,370
Vì vậy, đi đến thiết bị đầu cuối hoặc cửa sổ lệnh, khởi động máy chủ.

321
00:27:01,370 --> 00:27:06,045
Vì vậy, tôi sẽ nói “npm start” và máy chủ bây giờ đã lên và chạy.

322
00:27:06,045 --> 00:27:12,030
Chúng ta sẽ dùng người đưa thư để liên lạc với máy chủ này.

323
00:27:12,030 --> 00:27:15,700
Vì vậy, chúng ta hãy đi đến người đưa thư và sau đó thực hiện các hoạt động nhất định.

324
00:27:15,700 --> 00:27:19,030
Ở đây bạn thấy người đưa thư của tôi đang chạy ở đây.

325
00:27:19,030 --> 00:27:26,450
Vì vậy, hãy để tôi thực hiện một hoạt động GET trên localhost:3000/món ăn.

326
00:27:28,300 --> 00:27:31,875
Vì vậy, khi bạn thực hiện một hoạt động GET như bạn thấy,

327
00:27:31,875 --> 00:27:33,205
nó sẽ trả về một chuỗi rỗng.

328
00:27:33,205 --> 00:27:36,715
Cơ sở dữ liệu của tôi bây giờ trống vì vậy tôi không có bất cứ điều gì ở đó.

329
00:27:36,715 --> 00:27:40,205
Vì vậy, tôi sẽ chỉ được trả về một chuỗi trống.

330
00:27:40,205 --> 00:27:45,600
Hãy đăng một món ăn.

331
00:27:46,020 --> 00:27:48,340
Vì vậy, khi bạn đăng một món ăn,

332
00:27:48,340 --> 00:27:50,254
rõ ràng trong cơ thể,

333
00:27:50,254 --> 00:27:58,175
bạn sẽ được bao bọc một món ăn và cơ thể sẽ được thiết lập để là loại json ứng dụng.

334
00:27:58,175 --> 00:28:00,785
Bây giờ, để đăng một món ăn,

335
00:28:00,785 --> 00:28:06,770
tôi đã cung cấp cho bạn các tập tin db.json trong các tài nguyên tập thể dục.

336
00:28:06,770 --> 00:28:10,880
Vì vậy, chỉ cần mở tập tin db.json và sau đó sao chép các món ăn đầu tiên từ

337
00:28:10,880 --> 00:28:15,390
đó và sau đó chúng tôi sẽ dán nó vào đây và sau đó gửi món ăn đó.

338
00:28:15,390 --> 00:28:18,735
Vậy, hãy để tôi xem hồ sơ db.jason.

339
00:28:18,735 --> 00:28:21,550
Để tôi sao chép món ăn đầu tiên từ đây.

340
00:28:21,550 --> 00:28:22,810
Vì vậy, tôi sẽ chỉ sao chép

341
00:28:22,810 --> 00:28:32,765
toàn bộ món ăn tất cả các cách lên đến đó và sau đó tôi sẽ đăng món ăn này.

342
00:28:32,765 --> 00:28:36,610
Điều này chứa rất nhiều lĩnh vực mà chúng tôi đã có ở đây.

343
00:28:36,610 --> 00:28:39,895
Hãy đăng món ăn này lên máy chủ và xem điều gì sẽ xảy ra.

344
00:28:39,895 --> 00:28:44,605
Vì vậy, quay lại với người đưa thư.

345
00:28:44,605 --> 00:28:47,620
Ở đây, trong dữ liệu hình thức,

346
00:28:47,620 --> 00:28:51,535
trong cơ thể, để tôi dán các món ăn vào vị trí.

347
00:28:51,535 --> 00:28:54,760
Vì vậy, chúng tôi có đầy đủ các chi tiết của món ăn ở đó.

348
00:28:54,760 --> 00:28:58,010
Hãy đăng món ăn này lên máy chủ.

349
00:28:58,320 --> 00:29:01,780
Sau đó, một khi món ăn được đăng lên máy chủ,

350
00:29:01,780 --> 00:29:06,580
bạn thấy rằng Postman có,

351
00:29:06,580 --> 00:29:09,700
hãy để tôi thu nhỏ lại,

352
00:29:09,700 --> 00:29:18,370
và sau đó bạn thấy ở dưới cùng rằng món ăn đặc biệt này đã được đăng lên cơ sở dữ liệu,

353
00:29:18,370 --> 00:29:20,290
đến cơ sở dữ liệu MongoDB bởi máy chủ của tôi.

354
00:29:20,290 --> 00:29:23,560
Vì vậy, bạn thấy rằng giá trị trả về

355
00:29:23,560 --> 00:29:30,760
ở đây cho thấy khi đĩa được chèn vào máy chủ đó.

356
00:29:30,760 --> 00:29:35,020
Vì vậy, bạn có CreateDat và UpdateDat thêm vào đó.

357
00:29:35,020 --> 00:29:39,880
Bạn thấy rằng các trường còn lại đều được lưu trữ ở đó.

358
00:29:39,880 --> 00:29:45,865
Lưu ý đặc biệt như thế nào giá trị đang được lưu trữ ở đó.

359
00:29:45,865 --> 00:29:49,820
Đây là cách tiền tệ lưu trữ giá trị.

360
00:29:50,630 --> 00:29:53,825
Vì vậy, khi bạn nhận được giá trị trả về,

361
00:29:53,825 --> 00:29:59,370
bạn cần phải giải thích điều này một cách thích hợp ở phía khách hàng của bạn có nghĩa là gì.

362
00:29:59,370 --> 00:30:08,510
Cũng lưu ý rằng ID đã được thêm vào món ăn của tôi và cho mỗi bình luận chính nó,

363
00:30:08,510 --> 00:30:11,445
bởi vì mỗi ý kiến là chính nó là một tài liệu phụ.

364
00:30:11,445 --> 00:30:14,370
Bạn sẽ có UpdateDat và CreateDat thêm,

365
00:30:14,370 --> 00:30:21,115
và ID cho mỗi ý kiến cũng được thêm vào trong đó tự động bởi cơ sở dữ liệu của tôi.

366
00:30:21,115 --> 00:30:23,080
Đây rồi. Vì vậy, bây giờ,

367
00:30:23,080 --> 00:30:26,875
món ăn này đã được thêm vào cơ sở dữ liệu của tôi.

368
00:30:26,875 --> 00:30:29,589
Hãy một lần nữa thực hiện các hoạt động GET,

369
00:30:29,589 --> 00:30:32,244
và rõ ràng tại thời điểm này,

370
00:30:32,244 --> 00:30:37,135
máy chủ sẽ trả lại rằng một món ăn cụ thể đã được thêm vào.

371
00:30:37,135 --> 00:30:39,775
Vì vậy, nó sẽ trả lại một mảng các món ăn ở đây,

372
00:30:39,775 --> 00:30:42,190
vì vậy như bạn có thể thấy, nó trả lại một mảng các món ăn.

373
00:30:42,190 --> 00:30:44,050
Tất nhiên, mảng này chỉ chứa một món ăn

374
00:30:44,050 --> 00:30:47,245
hoặc món ăn đặc biệt đó đã được trả lại ở đây.

375
00:30:47,245 --> 00:30:49,585
Cho đến nay, rất tốt.

376
00:30:49,585 --> 00:30:54,895
Vì vậy, chúng ta hãy làm một PUT trên các món ăn và xem những gì xảy ra.

377
00:30:54,895 --> 00:30:56,980
Khi bạn làm một PUT, rõ ràng, nó nói,

378
00:30:56,980 --> 00:31:02,255
“PUT hoạt động không được hỗ trợ trên các món ăn”, như chúng ta mong đợi.

379
00:31:02,255 --> 00:31:03,770
Hãy làm một DELETE.

380
00:31:03,770 --> 00:31:05,575
Làm một thao tác DELETE,

381
00:31:05,575 --> 00:31:09,030
nó trả về phản ứng này nói,

382
00:31:09,030 --> 00:31:10,890
“N bằng một”, okay,

383
00:31:10,890 --> 00:31:13,570
một nghĩa là nó đã xóa một món ăn.

384
00:31:13,570 --> 00:31:15,660
Bây giờ hãy một lần nữa, thực hiện một thao tác GET,

385
00:31:15,660 --> 00:31:22,850
và sau đó bạn sẽ thấy rằng các món ăn của tôi trống rỗng như chúng tôi mong đợi.

386
00:31:22,980 --> 00:31:25,930
Vì vậy, bạn thấy rằng các hoạt động GET, PUT, POST

387
00:31:25,930 --> 00:31:28,405
và DELETE đều hoạt động chính xác.

388
00:31:28,405 --> 00:31:31,225
Bây giờ, hãy để tôi POST món ăn một lần nữa

389
00:31:31,225 --> 00:31:36,110
lên máy chủ bởi vì tôi muốn có một món ăn trong máy chủ.

390
00:31:36,270 --> 00:31:38,725
Vì vậy, hãy để tôi POST món ăn đó,

391
00:31:38,725 --> 00:31:41,425
và bạn sẽ nhận thấy rằng ID bây giờ đã thay đổi.

392
00:31:41,425 --> 00:31:44,110
Vì vậy, hãy để tôi chọn ID đó,

393
00:31:44,110 --> 00:31:50,630
và sau đó chúng tôi sẽ làm một GET với ID tại chỗ.

394
00:31:51,990 --> 00:31:55,405
Khi bạn làm một GET với ID tại chỗ,

395
00:31:55,405 --> 00:32:02,300
bạn thấy rằng nó trả về món ăn cụ thể như bạn mong đợi nó.

396
00:32:02,760 --> 00:32:07,630
Hãy đi đến thiết bị đầu cuối và xem những gì

397
00:32:07,630 --> 00:32:12,125
đang được in trên thiết bị đầu cuối hoặc cửa sổ lệnh của bạn.

398
00:32:12,125 --> 00:32:15,300
Vì vậy, đi đến thiết bị đầu cuối hoặc cửa sổ lệnh của

399
00:32:15,300 --> 00:32:19,360
bạn, bạn thấy rằng nó đang in ra tất cả những điều này trên cửa sổ lệnh.

400
00:32:19,360 --> 00:32:21,540
Vì vậy, khi chúng tôi đã thực hiện các hoạt động GET đầu tiên,

401
00:32:21,540 --> 00:32:22,640
nó nói, GET /món ăn.

402
00:32:22,640 --> 00:32:24,375
Vì vậy, đây là một lần nữa,

403
00:32:24,375 --> 00:32:28,155
Morgan làm công việc này cho bạn, nó được in ra,

404
00:32:28,155 --> 00:32:31,170
truy tìm thông tin này và nó nói món ăn tạo ra

405
00:32:31,170 --> 00:32:34,575
và sau đó rằng thông tin món ăn đặc biệt đã được in,

406
00:32:34,575 --> 00:32:38,190
và sau đó nó nói POST /món ăn, GET /món ăn,

407
00:32:38,190 --> 00:32:41,130
và sau đó khi bạn đã làm một PUT nó trở lại một 403

408
00:32:41,130 --> 00:32:44,170
có và bạn lại tạo ra các món ăn và vân vân.

409
00:32:44,170 --> 00:32:47,145
Vì vậy, bạn thấy rằng máy chủ của bạn đang thực sự làm tất cả các công việc,

410
00:32:47,145 --> 00:32:53,110
và những điều này đang được chèn vào cơ sở dữ liệu MongoDB của bạn như bạn mong đợi.

411
00:32:53,110 --> 00:32:58,540
Bây giờ, trở lại với Postman,

412
00:32:58,540 --> 00:33:00,850
chúng ta hãy làm một bài đăng trên các món ăn.

413
00:33:00,850 --> 00:33:03,605
Bây giờ, điều này không được hỗ trợ ở phía máy chủ,

414
00:33:03,605 --> 00:33:04,750
vì vậy máy chủ của bạn nên nói,

415
00:33:04,750 --> 00:33:10,225
“POST thao tác không được hỗ trợ trên điểm cuối cụ thể đó”, như bạn có thể mong đợi nó.

416
00:33:10,225 --> 00:33:13,070
Hãy thực hiện một thao tác PUT.

417
00:33:14,430 --> 00:33:17,190
Khi bạn thực hiện một thao tác PUT,

418
00:33:17,190 --> 00:33:20,955
những gì tôi sẽ làm trong thao tác PUT là tôi sẽ

419
00:33:20,955 --> 00:33:26,860
thay thế nhãn trong đó.

420
00:33:26,860 --> 00:33:29,550
Vì vậy, trong cơ thể của tôi của thông điệp.

421
00:33:29,550 --> 00:33:34,570
Vì vậy, nhớ lại rằng nếu bạn nhìn vào các tập tin DB.json,

422
00:33:34,570 --> 00:33:38,180
nhãn cho rằng sẽ là mới,

423
00:33:38,180 --> 00:33:51,160
và vì vậy tôi sẽ thay đổi nhãn đó để nóng.

424
00:33:51,160 --> 00:33:53,040
Kể từ khi điều này cần phải được trong Json,

425
00:33:53,040 --> 00:33:57,895
vì vậy nhãn cũng trong dấu ngoặc kép Json nhãn nóng,

426
00:33:57,895 --> 00:34:02,810
và sau đó chúng ta hãy làm một PUT lên trên rằng điểm cuối cụ thể.

427
00:34:04,080 --> 00:34:07,615
Hoạt động PUT đã thành công,

428
00:34:07,615 --> 00:34:12,280
và vì vậy bạn thấy rằng khi thao tác PUT đã được thực hiện,

429
00:34:12,280 --> 00:34:19,150
sau đó bạn sẽ nhận thấy rằng nhãn bây giờ đã thay đổi từ mới sang nóng ở đây,

430
00:34:19,150 --> 00:34:22,630
và lưu ý đặc biệt,

431
00:34:22,630 --> 00:34:28,900
giá trị CreateDat và giá trị UpdateDat.

432
00:34:28,900 --> 00:34:31,990
Vì vậy, lưu ý rằng hồ sơ này đã được tạo ra

433
00:34:31,990 --> 00:34:36,970
tại thời điểm này và đã được cập nhật một chút sau đó.

434
00:34:36,970 --> 00:34:40,000
Vì vậy, bản cập nhật đã được thực hiện bởi hoạt động PUT mà tôi vừa

435
00:34:40,000 --> 00:34:43,450
thực hiện trên món ăn đặc biệt đó.

436
00:34:43,450 --> 00:34:46,240
Hãy xóa món ăn.

437
00:34:46,240 --> 00:34:49,795
Điều này được cho phép. Vì vậy, chúng tôi sẽ xóa các món ăn,

438
00:34:49,795 --> 00:34:54,100
và sau đó các món ăn sẽ bị xóa và giá trị sẽ được trả lại.

439
00:34:54,100 --> 00:34:58,930
Bây giờ, nếu bạn thực hiện một hoạt động GET trên

440
00:34:58,930 --> 00:35:04,615
điểm cuối món ăn, bạn sẽ thấy rằng điều này sẽ trả về một sản phẩm nào.

441
00:35:04,615 --> 00:35:09,385
Vì vậy, bạn vừa quản lý để xóa các món ăn từ cơ sở dữ liệu của chúng tôi.

442
00:35:09,385 --> 00:35:14,095
Những gì tôi sẽ làm là thực hiện

443
00:35:14,095 --> 00:35:20,630
một thao tác GET trên một món ăn không tồn tại và xem những gì xảy ra.

444
00:35:20,630 --> 00:35:23,905
Khi tôi thực hiện một thao tác GET trên món ăn không tồn tại,

445
00:35:23,905 --> 00:35:27,300
nó trả về null vì món ăn đó không tồn tại.

446
00:35:27,300 --> 00:35:31,570
Vì vậy, nó trả về một giá trị null nói rằng món ăn không tồn tại.

447
00:35:31,570 --> 00:35:40,525
Bây giờ, hãy để tôi thực hiện một thao tác GET trên một non-ObjectID và xem điều gì sẽ xảy ra.

448
00:35:40,525 --> 00:35:44,980
Nó trở lại như bạn thấy.

449
00:35:44,980 --> 00:35:46,465
Để tôi xem trước.

450
00:35:46,465 --> 00:35:51,840
Vì vậy, nó nói, “Cast to ObjectID thất bại cho giá trị ở đây tại đường dẫn.”

451
00:35:51,840 --> 00:35:53,840
Vì vậy, tôi sẽ rõ ràng đây không phải là

452
00:35:53,840 --> 00:35:57,565
một đối tượng hợp lệ vì vậy tôi chỉ quản lý để xóa một phần của nó,

453
00:35:57,565 --> 00:36:02,050
và sau đó thực hiện các hoạt động để nó trả về một lỗi nói,

454
00:36:02,050 --> 00:36:04,915
vì vậy bạn thấy có 500 lỗi máy chủ nội bộ.

455
00:36:04,915 --> 00:36:09,505
Các máy chủ đã không thể xử lý điều này và sau đó trả về giá trị này ở đây.

456
00:36:09,505 --> 00:36:11,925
Vì vậy, nó nói, “Không,

457
00:36:11,925 --> 00:36:13,230
điều này không được phép.”

458
00:36:13,230 --> 00:36:18,385
Vì vậy, bởi vì đó không phải là một đối tượng hợp lệ.

459
00:36:18,385 --> 00:36:22,275
Vì vậy, ngay cả các lỗi cũng được xử lý một cách thích hợp như bạn thấy ở đây.

460
00:36:22,275 --> 00:36:26,050
Vì vậy, hãy để tôi một lần nữa, thực hiện một hoạt động GET trên các món ăn,

461
00:36:26,050 --> 00:36:27,975
và máy chủ của bạn vẫn đang chạy,

462
00:36:27,975 --> 00:36:30,650
và nó sẽ trả về một giá trị trống ở đây.

463
00:36:30,650 --> 00:36:34,465
Vì vậy, chúng ta đã thấy làm thế nào bằng cách sửa đổi

464
00:36:34,465 --> 00:36:40,900
máy chủ REST API của chúng tôi để có thể tương tác với máy chủ MongoDB.

465
00:36:40,900 --> 00:36:45,775
Bây giờ chúng tôi có một máy chủ REST API đầy đủ có thể lưu trữ,

466
00:36:45,775 --> 00:36:48,090
và truy xuất, và thực hiện các hoạt động khác nhau

467
00:36:48,090 --> 00:36:51,220
trên dữ liệu được lưu trữ trên máy chủ MongoDB của tôi.

468
00:36:51,220 --> 00:36:54,535
Với điều này, chúng tôi hoàn thành bài tập này.

469
00:36:54,535 --> 00:36:56,290
Vì vậy, trong bài tập này,

470
00:36:56,290 --> 00:37:05,200
chúng ta đã thấy làm thế nào chúng ta có thể tương tác với máy chủ REST API của chúng tôi

471
00:37:05,200 --> 00:37:07,560
, và lần lượt, với máy chủ MongoDB,

472
00:37:07,560 --> 00:37:12,400
và sau đó chúng tôi đang tận dụng máy chủ MongoDB để lưu trữ và truy xuất dữ liệu từ máy chủ.

473
00:37:12,400 --> 00:37:14,770
Bạn có thể tương tác từ

474
00:37:14,770 --> 00:37:20,225
ứng dụng Express của chúng tôi với máy chủ MongoDB bằng cách sử dụng Mongoose.

475
00:37:20,225 --> 00:37:24,700
Đây là thời điểm tốt để bạn thực hiện một cam kết GIT với thông báo,

476
00:37:24,700 --> 00:37:31,550
“Express REST API với Mongoose Part One.”