1
00:00:03,940 --> 00:00:08,444
Trong mô-đun này trong bài học đầu tiên,

2
00:00:08,444 --> 00:00:14,115
chúng tôi đã học cách xây dựng một máy chủ REST API đầy đủ bằng cách sử dụng express.

3
00:00:14,115 --> 00:00:17,120
Vì vậy, chúng tôi có thể phục vụ các

4
00:00:17,120 --> 00:00:22,185
yêu cầu GET, PUT, POST và DELETE đến các điểm kết thúc REST API khác nhau.

5
00:00:22,185 --> 00:00:24,975
Nhưng, bản thân máy chủ chỉ đơn giản là trả lại

6
00:00:24,975 --> 00:00:29,115
một thông điệp đơn giản để đáp ứng các yêu cầu này.

7
00:00:29,115 --> 00:00:32,778
Trong một máy chủ REST API thực sự,

8
00:00:32,778 --> 00:00:39,620
bất kỳ yêu cầu đến sẽ đòi hỏi một thao tác tương ứng để được thực hiện ở mặt sau trong

9
00:00:39,620 --> 00:00:46,610
cơ sở dữ liệu có lẽ để truy xuất dữ liệu để đáp ứng một yêu cầu GET,

10
00:00:46,610 --> 00:00:52,430
hoặc có thể sửa đổi dữ liệu tồn tại trên máy chủ để đáp ứng với một yêu cầu PUT.

11
00:00:52,430 --> 00:00:56,270
Bây giờ trong phần còn lại của mô-đun này,

12
00:00:56,270 --> 00:01:03,465
chúng tôi đã nghiên cứu về cách chúng ta có thể tương tác từ một ứng dụng nút với một máy chủ MongoDB, có thể

13
00:01:03,465 --> 00:01:10,500
là sử dụng trình điều khiển MongoDB hoặc sử dụng Mongoose.

14
00:01:10,500 --> 00:01:15,600
Bây giờ, một máy chủ REST API đầy đủ có thể xử lý

15
00:01:15,600 --> 00:01:21,468
yêu cầu kết thúc sẽ chỉ có thể khi chúng ta kết hợp hai với nhau.

16
00:01:21,468 --> 00:01:24,840
Đó là, một máy chủ dựa trên biểu thức thực hiện

17
00:01:24,840 --> 00:01:29,340
tất cả các xử lý logic kinh doanh và đồng thời sẽ phát hành các

18
00:01:29,340 --> 00:01:34,200
yêu cầu cơ sở dữ liệu đến MongoDB

19
00:01:34,200 --> 00:01:40,790
bằng cách sử dụng trình điều khiển MongoDB nút hoặc sử dụng Mongoose.

20
00:01:40,790 --> 00:01:42,780
Vậy làm thế nào để chúng ta kết hợp hai cái lại với nhau?

21
00:01:42,780 --> 00:01:47,040
Vì vậy, đây là những gì chúng ta sẽ xem xét trong bài học đặc biệt này,

22
00:01:47,040 --> 00:01:51,230
và hai bài tập mà chúng ta sẽ làm như một phần của bài học này.

23
00:01:51,230 --> 00:01:55,875
Bây giờ chúng ta đã học cách xây dựng

24
00:01:55,875 --> 00:01:59,400
một máy chủ REST API bằng cách sử dụng Express

25
00:01:59,400 --> 00:02:03,950
và phục vụ các yêu cầu khác nhau đến điểm kết thúc REST API.

26
00:02:03,950 --> 00:02:10,765
Chúng ta cũng đã thấy làm thế nào chúng ta có thể tương tác với cơ sở dữ liệu từ ứng dụng nút của chúng tôi.

27
00:02:10,765 --> 00:02:17,280
Bây giờ, cho rằng bạn có một yêu cầu GET đi vào máy chủ như một ví dụ,

28
00:02:17,280 --> 00:02:20,550
để xử lý yêu cầu GET này từ đầu đến cuối,

29
00:02:20,550 --> 00:02:25,500
một yêu cầu GET đến từ khách hàng có nghĩa là khách hàng muốn truy xuất

30
00:02:25,500 --> 00:02:31,830
dữ liệu từ máy chủ và sử dụng dữ liệu đó.

31
00:02:31,830 --> 00:02:34,590
Vì vậy, một yêu cầu GET đi vào máy chủ sẽ phải được

32
00:02:34,590 --> 00:02:39,060
xử lý thông qua quá trình xử lý khác nhau được thực hiện bởi, ví dụ,

33
00:02:39,060 --> 00:02:43,880
máy chủ Express và một khi quá trình xử lý được thực hiện sau đó

34
00:02:43,880 --> 00:02:47,340
logic kinh doanh của máy chủ Express nhận ra rằng nó cần phải

35
00:02:47,340 --> 00:02:51,166
thực hiện một thao tác truy vấn trên cơ sở dữ liệu.

36
00:02:51,166 --> 00:02:54,630
Vì vậy, điều này có thể bắt đầu một truy vấn đến cơ sở dữ liệu để

37
00:02:54,630 --> 00:02:58,605
lấy một tập hợp các tài liệu từ cơ sở dữ liệu,

38
00:02:58,605 --> 00:03:02,850
và sau đó dữ liệu được truy xuất sau đó sẽ được

39
00:03:02,850 --> 00:03:07,650
chuyển đổi thành một thư trả lời và sau đó gửi trở lại máy chủ.

40
00:03:07,650 --> 00:03:15,340
Vì vậy, điều này xử lý end-to-end của yêu cầu và phản hồi liên quan đến hai phần.

41
00:03:15,340 --> 00:03:18,060
Một tất nhiên làm logic kinh doanh trong

42
00:03:18,060 --> 00:03:23,070
máy chủ Express và sau đó làm tương tác với

43
00:03:23,070 --> 00:03:27,270
cơ sở dữ liệu từ ứng dụng nút từ máy chủ Express là

44
00:03:27,270 --> 00:03:32,580
một ứng dụng nút sử dụng trình điều khiển MongoDB hoặc Mongoose.

45
00:03:32,580 --> 00:03:36,190
Chúng tôi sẽ sử dụng Mongoose trong các bài tập.

46
00:03:36,190 --> 00:03:42,005
Tương tự, một yêu cầu POST đến

47
00:03:42,005 --> 00:03:46,420
điểm kết thúc REST API trên máy chủ có

48
00:03:46,420 --> 00:03:51,330
nghĩa là yêu cầu POST mang đến một số dữ liệu trong nội dung của thư.

49
00:03:51,330 --> 00:03:55,795
Vì vậy, thông tin này cần phải được xử lý trong máy chủ Express

50
00:03:55,795 --> 00:04:01,150
và thông tin cần được lưu trữ trên cơ

51
00:04:01,150 --> 00:04:07,208
sở dữ liệu nên được lấy từ cơ thể của yêu cầu POST đến và sau đó

52
00:04:07,208 --> 00:04:11,380
tương ứng tạo yêu cầu cần phải

53
00:04:11,380 --> 00:04:17,590
được tạo ra hoặc khởi tạo từ máy chủ Express đến cơ sở dữ liệu MongoDB,

54
00:04:17,590 --> 00:04:19,450
và trong yêu cầu tạo,

55
00:04:19,450 --> 00:04:22,330
thông tin đã được truy xuất từ nội dung của

56
00:04:22,330 --> 00:04:25,870
yêu cầu POST sẽ được gửi đến cơ

57
00:04:25,870 --> 00:04:33,130
sở dữ liệu để tạo một tài liệu mới trong một bộ sưu tập cụ thể trên cơ sở dữ liệu.

58
00:04:33,130 --> 00:04:36,550
Và sau đó kết quả của thao tác này sẽ được gửi

59
00:04:36,550 --> 00:04:40,200
lại cho khách hàng trong tin nhắn trả lời.

60
00:04:40,200 --> 00:04:45,640
Vì vậy, bất kỳ thao tác nào được thực hiện trên điểm kết thúc REST API cho dù đó là một GET,

61
00:04:45,640 --> 00:04:47,155
một PUT, một POST,

62
00:04:47,155 --> 00:04:48,951
hoặc một hoạt động DELETE,

63
00:04:48,951 --> 00:04:51,005
như bạn thấy từ hai ví dụ này,

64
00:04:51,005 --> 00:04:58,063
sẽ bắt đầu một hoạt động cơ sở dữ liệu tương ứng đằng sau hậu trường.

65
00:04:58,063 --> 00:05:01,120
Vì vậy, khi hiểu tương tác này,

66
00:05:01,120 --> 00:05:05,590
những gì chúng ta nhận ra là một yêu cầu HTTP đến

67
00:05:05,590 --> 00:05:10,360
một điểm kết thúc REST API phải được ánh xạ vào một hoạt động cơ sở dữ liệu tương ứng.

68
00:05:10,360 --> 00:05:12,260
Vì vậy, mỗi yêu cầu đến, GET, PUT, POST,

69
00:05:12,260 --> 00:05:19,270
hoặc DELETE có nghĩa là một tài nguyên cụ thể trên cơ sở dữ liệu

70
00:05:19,270 --> 00:05:23,530
có thể được truy cập, có thể được truy xuất hoặc một nhóm các tài nguyên có thể được

71
00:05:23,530 --> 00:05:28,360
truy xuất từ cơ sở dữ liệu và sau đó gửi trở lại máy chủ,

72
00:05:28,360 --> 00:05:34,015
hoặc một tài nguyên có thể được sửa đổi để đáp ứng với một PUT hoặc một POST

73
00:05:34,015 --> 00:05:40,425
hoặc thậm chí là một yêu cầu DELETE đến máy chủ REST API.

74
00:05:40,425 --> 00:05:44,170
Vì vậy, nó tùy thuộc vào logic máy chủ Express,

75
00:05:44,170 --> 00:05:47,545
logic kinh doanh được thực hiện trong máy chủ Express REST API,

76
00:05:47,545 --> 00:05:53,860
để xử lý bản dịch này của yêu cầu đến cho dù đó là một yêu cầu GET, P

77
00:05:53,860 --> 00:05:58,765
UT, POST, hoặc DELETE vào hoạt động cơ sở dữ liệu tương ứng.

78
00:05:58,765 --> 00:06:03,085
Vì vậy, chúng ta hãy nhìn vào một ví dụ về điều này trong một chút chi tiết hơn.

79
00:06:03,085 --> 00:06:07,480
Vì vậy, đến với sự kết hợp của bộ định tuyến Express cộng với

80
00:06:07,480 --> 00:06:12,445
MongoDB cộng với Mongoose hoạt động như OM ở giữa,

81
00:06:12,445 --> 00:06:17,710
các hoạt động được thực hiện của cơ sở dữ liệu phải được bắt đầu

82
00:06:17,710 --> 00:06:23,275
bên trong bộ định tuyến mà chúng tôi xây dựng cho mỗi điểm kết thúc REST API.

83
00:06:23,275 --> 00:06:24,310
Vì vậy, trong bộ định tuyến,

84
00:06:24,310 --> 00:06:26,740
ngay cả phương pháp GET, P

85
00:06:26,740 --> 00:06:28,615
UT hoặc phương pháp POST.

86
00:06:28,615 --> 00:06:35,440
Các hành động tương ứng được thực hiện trên cơ sở dữ liệu cho dù đó là một yêu cầu GET

87
00:06:35,440 --> 00:06:39,940
gây ra một phương thức tìm món ăn được thực hiện hoặc

88
00:06:39,940 --> 00:06:44,235
một yêu cầu POST gây ra một phương thức tạo món ăn được thực hiện,

89
00:06:44,235 --> 00:06:48,595
sẽ phải được thực hiện bởi máy chủ Express của chúng tôi dẫn đến

90
00:06:48,595 --> 00:06:53,285
hoạt động tương ứng là khởi tạo trên cơ sở dữ liệu MongoDB.

91
00:06:53,285 --> 00:06:55,555
Vì vậy, với sự hiểu biết này về

92
00:06:55,555 --> 00:07:00,655
cách các yêu cầu được dịch sang một hoạt động cơ sở dữ liệu tương ứng, chúng ta

93
00:07:00,655 --> 00:07:06,720
hãy tiếp tục vào hai bài tập mà chúng ta sẽ xem xét xử lý

94
00:07:06,720 --> 00:07:15,040
yêu cầu GET, PUT, POST, và DELETE đến /Dishes/:dishid điểm kết thúc và

95
00:07:15,040 --> 00:07:18,940
cũng để sửa đổi cụ thể ý kiến có trong

96
00:07:18,940 --> 00:07:24,470
các tài liệu phụ kèm theo bên trong tài liệu món ăn.