Trong mô-đun này trong bài học đầu tiên,
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.
Vì vậy, chúng tôi có thể phục vụ các
yêu cầu GET, PUT, POST và DELETE đến các điểm kết thúc REST API khác nhau.
Nhưng, bản thân máy chủ chỉ đơn giản là trả lại
một thông điệp đơn giản để đáp ứng các yêu cầu này.
Trong một máy chủ REST API thực sự,
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
cơ sở dữ liệu có lẽ để truy xuất dữ liệu để đáp ứng một yêu cầu GET,
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.
Bây giờ trong phần còn lại của mô-đun này,
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ể
là sử dụng trình điều khiển MongoDB hoặc sử dụng Mongoose.
Bây giờ, một máy chủ REST API đầy đủ có thể xử lý
yêu cầu kết thúc sẽ chỉ có thể khi chúng ta kết hợp hai với nhau.
Đó là, một máy chủ dựa trên biểu thức thực hiện
tất cả các xử lý logic kinh doanh và đồng thời sẽ phát hành các
yêu cầu cơ sở dữ liệu đến MongoDB
bằng cách sử dụng trình điều khiển MongoDB nút hoặc sử dụng Mongoose.
Vậy làm thế nào để chúng ta kết hợp hai cái lại với nhau?
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,
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.
Bây giờ chúng ta đã học cách xây dựng
một máy chủ REST API bằng cách sử dụng Express
và phục vụ các yêu cầu khác nhau đến điểm kết thúc REST API.
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.
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ụ,
để xử lý yêu cầu GET này từ đầu đến cuối,
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
dữ liệu từ máy chủ và sử dụng dữ liệu đó.
Vì vậy, một yêu cầu GET đi vào máy chủ sẽ phải được
xử lý thông qua quá trình xử lý khác nhau được thực hiện bởi, ví dụ,
máy chủ Express và một khi quá trình xử lý được thực hiện sau đó
logic kinh doanh của máy chủ Express nhận ra rằng nó cần phải
thực hiện một thao tác truy vấn trên cơ sở dữ liệu.
Vì vậy, điều này có thể bắt đầu một truy vấn đến cơ sở dữ liệu để
lấy một tập hợp các tài liệu từ cơ sở dữ liệu,
và sau đó dữ liệu được truy xuất sau đó sẽ được
chuyển đổi thành một thư trả lời và sau đó gửi trở lại máy chủ.
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.
Một tất nhiên làm logic kinh doanh trong
máy chủ Express và sau đó làm tương tác với
cơ sở dữ liệu từ ứng dụng nút từ máy chủ Express là
một ứng dụng nút sử dụng trình điều khiển MongoDB hoặc Mongoose.
Chúng tôi sẽ sử dụng Mongoose trong các bài tập.
Tương tự, một yêu cầu POST đến
điểm kết thúc REST API trên máy chủ có
nghĩa là yêu cầu POST mang đến một số dữ liệu trong nội dung của thư.
Vì vậy, thông tin này cần phải được xử lý trong máy chủ Express
và thông tin cần được lưu trữ trên cơ
sở dữ liệu nên được lấy từ cơ thể của yêu cầu POST đến và sau đó
tương ứng tạo yêu cầu cần phải
được tạo ra hoặc khởi tạo từ máy chủ Express đến cơ sở dữ liệu MongoDB,
và trong yêu cầu tạo,
thông tin đã được truy xuất từ nội dung của
yêu cầu POST sẽ được gửi đến cơ
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.
Và sau đó kết quả của thao tác này sẽ được gửi
lại cho khách hàng trong tin nhắn trả lời.
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,
một PUT, một POST,
hoặc một hoạt động DELETE,
như bạn thấy từ hai ví dụ này,
sẽ bắt đầu một hoạt động cơ sở dữ liệu tương ứng đằng sau hậu trường.
Vì vậy, khi hiểu tương tác này,
những gì chúng ta nhận ra là một yêu cầu HTTP đến
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.
Vì vậy, mỗi yêu cầu đến, GET, PUT, POST,
hoặc DELETE có nghĩa là một tài nguyên cụ thể trên cơ sở dữ liệu
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
truy xuất từ cơ sở dữ liệu và sau đó gửi trở lại máy chủ,
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
hoặc thậm chí là một yêu cầu DELETE đến máy chủ REST API.
Vì vậy, nó tùy thuộc vào logic máy chủ Express,
logic kinh doanh được thực hiện trong máy chủ Express REST API,
để 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
UT, POST, hoặc DELETE vào hoạt động cơ sở dữ liệu tương ứng.
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.
Vì vậy, đến với sự kết hợp của bộ định tuyến Express cộng với
MongoDB cộng với Mongoose hoạt động như OM ở giữa,
các hoạt động được thực hiện của cơ sở dữ liệu phải được bắt đầu
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.
Vì vậy, trong bộ định tuyến,
ngay cả phương pháp GET, P
UT hoặc phương pháp POST.
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
gây ra một phương thức tìm món ăn được thực hiện hoặc
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,
sẽ phải được thực hiện bởi máy chủ Express của chúng tôi dẫn đến
hoạt động tương ứng là khởi tạo trên cơ sở dữ liệu MongoDB.
Vì vậy, với sự hiểu biết này về
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
hãy tiếp tục vào hai bài tập mà chúng ta sẽ xem xét xử lý
yêu cầu GET, PUT, POST, và DELETE đến /Dishes/:dishid điểm kết thúc và
cũng để sửa đổi cụ thể ý kiến có trong
các tài liệu phụ kèm theo bên trong tài liệu món ăn.