Đó là thời gian để bắt đầu vào thứ tư và nhiệm vụ cuối cùng của khóa học này.
Tôi đã thiết kế nhiệm vụ này để củng cố
tất cả mọi thứ mà bạn đã học được trong khóa học này.
Vì vậy, nhiệm vụ này sẽ liên quan đến việc định tuyến bằng cách sử dụng bộ định tuyến nhanh.
Nó sẽ liên quan đến việc thiết kế các lược đồ trong mô hình,
cho MongoDB và Mongoose của chúng tôi,
và sau đó nó cũng sẽ xem xét một thời gian ngắn xác thực người dùng.
Chính xác thì chúng ta sẽ làm gì trong nhiệm vụ này?
Nhiệm vụ này dựa trên khả năng cho người dùng để
lưu và lấy một danh sách các món ăn như là món ăn ưa thích của họ ở phía máy chủ.
Nếu bạn đã thực hiện các khóa học trước đây của chuyên môn này,
đặc biệt là lai di động ứng dụng phát triển khóa học, cho
dù đó là ion hoặc bản địa kịch bản,
bạn đã thấy rằng chúng tôi đã thiết kế các ứng dụng để có khả năng cho phép người dùng để
lưu các món ăn trong danh sách yêu thích của họ các món ăn
và cũng lấy các món ăn từ danh sách các món ăn yêu thích của họ.
Khi chúng tôi thực hiện rằng trong các khóa học trước đó,
chúng tôi đã thực hiện rằng bằng cách sử dụng địa phương lưu trữ trên các thiết bị cụ thể.
Trong nhiệm vụ này, bạn sẽ mở rộng
phía máy chủ để có thể hỗ trợ chính xác điều đó.
Bằng cách này, người dùng có thể lưu danh sách các món ăn yêu thích của họ
ở phía máy chủ và truy cập danh sách này từ
bất kỳ thiết bị nào mà từ đó họ sẽ đăng nhập vào máy chủ của họ.
Điều này có nghĩa là chúng ta cần thiết kế một tuyến đường mới cho máy chủ của chúng tôi,
mà chúng tôi sẽ gọi là tuyến đường /favorites.
Trên tuyến đường này, chúng ta sẽ phải thiết kế bộ định tuyến tốc hành để hỗ trợ lấy,
đăng và xóa các hoạt động trên tuyến đường này và
cũng thiết kế giản đồ để lưu trữ các món ăn yêu thích
và mô hình Mongoose tương ứng và
kết nối hai với nhau để thông tin có thể được lưu lại và được lấy từ MongoDB.
Chúng tôi cũng sẽ sử dụng quần thể Mongoose để rút ra thông tin từ
mô hình người dùng và từ mô hình món ăn khi chúng tôi đặt
lại với nhau danh sách các món ăn yêu thích cho người dùng của chúng tôi.
Các món ăn yêu thích thông tin mà bạn lưu trữ sẽ không
thực sự chứa thông tin người dùng hoặc thông tin của món ăn.
Thay vào đó, nó sẽ chứa các con trỏ đến các tài liệu cho các tài liệu món ăn và cho
các tài liệu người dùng và sau đó chúng tôi sẽ xuất bản thông tin này
khi chúng tôi đang gửi lại thông tin này để đáp ứng với một yêu cầu get.
Hãy nhìn vào cách chúng tôi thực hiện nhiệm vụ
cuối cùng này và cũng là những nhiệm vụ khác nhau trong nhiệm vụ cuối cùng này.
Để giúp bạn hiểu những gì được yêu cầu trong
nhiệm vụ cuối cùng hoặc những gì bạn sẽ được thực hiện trong nhiệm vụ cuối cùng,
hãy để tôi chứng minh những gì máy chủ của bạn dự kiến sẽ làm ở cuối nhiệm vụ này,
và sau đó tôi sẽ liệt kê ra ba nhiệm vụ mà bạn cần thực hiện trong này phân công.
Để bắt đầu, chúng ta cần một bộ các món ăn đã có
ở phía máy chủ để người dùng có thể đánh dấu một số món ăn như món ăn yêu thích của họ.
Tôi đã đi trước và thêm vào bốn món ăn vào danh sách các món ăn của tôi ở phía máy chủ.
Bạn đã biết làm thế nào để làm điều này.
Bạn phải đăng nhập với tư cách quản trị viên và sau đó đăng
thông tin món ăn này lên phía máy chủ từng người một.
Để cho phép bạn nhận được thông tin cho mỗi món ăn,
tôi đã cung cấp cho bạn các tập tin db.json trong đó có
các tài liệu JSON tương ứng với mỗi món ăn trong các tài nguyên phân công.
Bạn có thể mở, cắt và dán thông tin từ đó và sau đó
tạo một danh sách các món ăn ở phía máy chủ của bạn.
Ở đây, bạn sẽ thấy rằng tôi đã thực hiện các hoạt động get trên
localhost:3000/món ăn và sau đó bạn
thấy rằng tôi đã có được danh sách các món ăn ở đây.
Điều quan trọng đối với chúng tôi cần lưu ý là mỗi món ăn sẽ có ID món ăn riêng ở đây.
Khi bạn cần đánh dấu bất kỳ món ăn nào là yêu thích của
bạn, bạn cần truy cập vào ID món ăn cho mỗi món ăn này.
Bạn có thể sao chép bốn ID món ăn này và sau đó lưu chúng để khi bạn
thực hiện các thao tác để thêm các món ăn vào danh sách các món ăn,
sau đó bạn sẽ có thể sử dụng ID món ăn này.
Vì vậy, tôi sẽ sao chép bốn ID món ăn và sau đó lưu
chúng trong một tài liệu văn bản để tôi có thể sử dụng chúng.
Trước khi tôi có thể thêm các món ăn vào danh sách các món ăn của
tôi, tôi rõ ràng cần phải đăng nhập với tư cách là một người dùng.
Hãy để tôi tiếp tục đăng nhập với tư cách là một trong những người sử dụng.
Để làm điều đó, hãy để tôi làm một bài đăng trên localhost:3000/users/login.
Và trong nội dung của tin nhắn,
hãy để tôi gõ vào một trong những người dùng đã đăng ký.
Tôi không muốn đăng nhập với tư cách quản trị viên nhưng là một trong những người dùng bình thường khác.
Vì vậy, hãy để tôi làm bài này để https://localhost:3443.
Bây giờ tất cả các hoạt động
này, điều này là tốt hơn để làm điều đó trên điểm cuối HTTPS chứ không phải là điểm cuối HTTP.
Chúng tôi sẽ làm một bài đăng đến điểm cuối này và đăng nhập vào dịch vụ
của chúng tôi, và để đáp lại, bạn sẽ có thể giữ mã thông báo web JSON.
Vì vậy, chúng ta hãy làm một bản sao của mã thông báo web JSON này bởi vì chúng ta sẽ cần điều này để
thực hiện bất kỳ hoạt động để thêm các món ăn vào danh sách yêu thích của chúng tôi.
Hãy để tôi sao chép mã thông báo này và lưu nó trong tài liệu văn bản của tôi.
Bây giờ, làm thế nào để thêm một món ăn vào danh sách yêu thích của tôi?
Để làm điều đó, bước đầu tiên là chúng ta
phải truy cập điểm cuối /favorites.
Nếu bạn muốn thêm một món ăn cụ thể vào danh sách các mục yêu thích,
chúng tôi chỉ cần nói /yêu thích và sau đó thêm ID món ăn vào URL ở đây.
Hãy để tôi dán vào một ID món ăn mà tôi muốn thêm vào danh sách yêu thích của tôi.
Ở đây, tôi đã dán trong ID món ăn của tôi vào danh sách các mục yêu thích.
Nội dung của thông điệp máy chủ này sẽ
không chứa bất cứ điều gì vì mọi thứ tôi cần đã có trong URL.
Và đối với tiêu đề,
tôi cần phải thiết lập tiêu đề ủy quyền,
và trong tiêu đề ủy quyền,
tôi cần mã thông báo.
Vì vậy, hãy để tôi sao chép mã thông báo ở đây và sau đó trong tiêu đề ủy quyền,
giả sử người mang, và dán vào tiêu đề ủy quyền.
Bạn cũng có thể làm điều tương tự để có được mã thông báo.
Bạn cũng có thể đăng nhập thông qua Facebook và sau đó có được mã thông báo web JSON.
Tôi đã minh họa để có được mã thông báo web JSON bằng cách sử dụng
xác thực địa phương tiêu chuẩn bằng cách sử dụng tên người dùng và mật khẩu,
nhưng không quan trọng cách nào bạn có được mã thông báo web JSON.
Miễn là bạn có mã thông báo web JSON,
bạn sẽ có thể thực hiện tất cả các thao tác này.
Hãy để tôi thực hiện thao tác bài trên điểm cuối này và nhớ rằng đây
là ID món ăn cho món ăn cụ thể mà tôi muốn thêm vào danh sách yêu thích của tôi.
Khi tôi đăng vào danh sách các mục yêu thích,
bạn sẽ thấy rằng máy chủ của tôi sẽ trả lời lại với tài liệu này ở đây trong nội dung trả lời.
Bây giờ, chúng ta hãy kiểm tra tài liệu này để xem chính xác những gì nó chứa.
Tài liệu này, như bạn có thể thấy, chứa một ID,
nhưng rõ ràng bởi vì đây là một tài liệu JSON,
ngoài ra nó còn chứa một
Field ở đây được gọi là user.
Bây giờ lĩnh vực người dùng này lưu trữ những gì?
Trường người dùng này là ID đối tượng của người dùng
tương ứng với người mà danh sách yêu thích cụ thể này là.
Và nhìn vào các món ăn.
Các món ăn là một mảng và nó là một mảng các ID món ăn.
Và trong trường hợp này, tôi chỉ cần thêm món ăn đầu tiên vào danh sách yêu thích của tôi.
Vì vậy, đó là lý do tại sao tôi chỉ có một món ăn trong mảng các món ăn trong danh sách yêu thích của tôi.
Vì vậy, điều này sẽ ngay lập tức đề nghị cho bạn làm thế nào để thiết kế giản đồ cho yêu thích của bạn.
Vì vậy, các món ăn chứa các đối tượng ID của mỗi món ăn,
và người dùng chứa các đối tượng ID tương ứng với người dùng.
Bạn đã thấy làm thế nào tôi sử dụng
các thông tin để làm dân số của các thông tin khi tôi làm một hoạt động get.
Chúng tôi đã làm điều đó với ý kiến đã.
Vì vậy, điều đó sẽ cung cấp cho bạn một gợi ý lớn về cách bạn sẽ thiết kế giản đồ trong đó có
người sử dụng và các mảng của các món ăn trong danh sách của tôi về các món ăn ở đây.
Bây giờ, chúng tôi đã thực hiện bài viết về vấn đề này.
Hãy lấy danh sách các mục yêu thích.
Vì vậy, để có được danh sách các mục yêu thích,
tôi cần phải thực hiện một hoạt động get.
Bây giờ, đối với thao tác get,
tôi rõ ràng cần phải có thông tin ủy quyền ở đây bởi vì
bạn muốn một người dùng có thể truy xuất chỉ danh sách các mục yêu thích của họ,
và không có người dùng nào khác có thể truy xuất danh sách các mục yêu thích cho một người dùng khác nhau.
Vì vậy, điều này rất quan trọng.
Vì vậy, điều này cho thấy bạn rằng bạn cần phải
xác minh tính xác thực của người dùng ngay cả đối với thao tác get.
Bây giờ, làm thế nào để hậu thao tác
tự động nhận được ID đối tượng này tương ứng với người dùng?
Nhớ lại rằng khi bạn bao gồm tiêu đề ủy quyền ở đây,
từ tiêu đề ủy quyền,
bằng cách bạn thực hiện ủy quyền của người dùng,
chỉ đạo các thuộc tính người dùng đó đã được nạp vào đối tượng yêu cầu.
Và đó là nơi bạn sẽ nhận được quyền truy cập vào ID đối tượng của người dùng.
Vì vậy, một gợi ý nữa về cách bạn sẽ điền vào thông tin này.
Vì vậy, đó là lý do tại sao thông báo rằng khi tôi thực hiện bài đăng,
tôi không bao giờ chỉ định người dùng bởi vì
thông tin của người dùng nên tự động được
bắt nguồn từ những gì chúng tôi đã cung cấp ở đây trong tiêu đề ủy quyền.
Vì vậy, một gợi ý nữa về cách bạn sẽ đi về việc thực hiện điều này.
Vì vậy, đó là lý do tại sao tôi nói nhiệm vụ này là một
sự hợp nhất của tất cả các chủ đề mà bạn đã khám phá trong khóa học này.
Bây giờ, tôi không hỗ trợ một hoạt động get trên một ID món ăn cụ thể.
Nó không có ý nghĩa để hỗ trợ điều đó trên mục yêu thích,
trong một ID món ăn cụ thể.
Thay vào đó, chúng ta có thể thực hiện một hoạt động get trên máy chủ địa phương 3443/yêu thích.
Và sau đó chúng tôi thực hiện các hoạt động get.
Bạn sẽ ngay lập tức nhận thấy rằng tài liệu được trả lại cho bạn chứa
thông tin của người dùng đã được xác định bởi các hoạt động nhận được ở đây.
Vì vậy, thông tin của người dùng.
Vì vậy, thay vì ID người dùng ở đó,
thông tin của người dùng đã có mặt trong đó.
Điều này được thực hiện thông qua dân số của Mongo.
Vì vậy, đó là một gợi ý lớn về cách bạn đang phải thực hiện các hoạt động get.
Không chỉ thông tin của người dùng được điền vào.
Bây giờ tại sao tôi muốn thông tin của người dùng được điền vào?
Bởi vì điều đó có thể hữu ích khi tôi hiển thị thông tin.
Điều này có thể không cần thiết,
nhưng tôi chỉ làm điều đó chỉ vì lợi ích của sự hoàn chỉnh
bởi vì nếu bạn đang truy xuất danh sách yêu thích cho một người dùng cụ thể,
bạn tự động biết người dùng là ai,
và người dùng cụ thể đó đang đăng nhập anyway.
Nhưng trong trường hợp bạn muốn thông tin của người dùng,
bạn có thể thực hiện thao tác này để giữ thông tin của người dùng đó.
Vì vậy, chỉ để minh họa cho bạn rằng dân số của Mongo có thể được sử dụng,
tôi đã minh họa không chỉ rằng trong danh sách các món ăn ở đây,
thông tin về mỗi món ăn đã được đưa vào mảng này.
Vì vậy, nếu bạn có một loạt các món ăn,
thông tin của mỗi món ăn nên được đưa vào mảng này.
Vì vậy, đây là một cách sử dụng dân số của Mongo
mà bạn đang thấy để điền thông tin về món ăn.
Chỉ bằng cách bạn thiết lập giản đồ cho mục yêu thích của bạn,
điều này sẽ được tự động có thể cho bạn bằng cách sử dụng
chỉ là dấu chấm cư trên danh sách các món ăn ở đây.
Vì vậy, đó là phần thứ hai.
Bây giờ chúng tôi có thể truy xuất phương pháp lấy món ăn,
hãy để tôi chỉ cho bạn cách bạn có thể thực hiện một thao tác sau, nơi bạn có thể
thêm một loạt các món ăn vào danh sách yêu thích của bạn.
Bây giờ, quay trở lại bài đăng này,
nếu bạn cần thêm không chỉ một mà là một tập hợp các món ăn vào danh sách yêu thích của bạn,
bây giờ tại sao bạn muốn điều này?
Có lẽ về phía khách hàng bạn có thể có một nút mà khi
nhấp vào sẽ cho phép bạn kiểm tra đánh dấu một tập hợp các món ăn từ danh sách các món ăn,
và sau đó thêm chúng vào một shot vào danh sách yêu thích của bạn.
Vì vậy, để hỗ trợ loại hoạt động đó,
bạn có thể muốn cho phép một bài đăng được thực hiện trên các mục yêu thích dấu gạch chéo ở đây.
Bây giờ, khi bài đăng được thực hiện trên các mục yêu thích dấu gạch chéo, một lần nữa,
bạn vẫn sẽ cần tiêu đề ủy quyền.
Nhưng trong nội dung của thông điệp,
chúng ta sẽ lưu trữ danh sách các món ăn như một mảng của định dạng này.
Vì vậy, đây là một tài liệu JSON ở đây,
vì vậy hãy để tôi đảm bảo rằng trong tiêu đề của tôi,
loại nội dung đã có mặt ở đó.
Bây giờ, tài liệu này sẽ
chứa một mảng các món ăn như thế này.
Vì vậy, mỗi món ăn sẽ được xác định bằng cách
nói dấu chấm ID gạch dưới,
và sau đó ở đây họ sẽ có ID món ăn,
và vì vậy điều này sẽ không có gì ngoài một mảng các món ăn.
Vì vậy, để tôi thêm hai món ăn vào danh sách yêu thích của tôi ở đây chỉ để minh họa cho điểm.
Vì vậy, để tôi dán các ID từ một vài món ăn vào này.
Vì vậy, khi bạn thực hiện một bài đăng trên máy chủ địa phương 3443/yêu thích,
đây là cách bạn soạn nội dung của bài đăng ở đây.
Vì vậy, mỗi món ăn mà bạn muốn thêm sẽ được bao gồm trong định dạng này ở đây.
Bây giờ, khi bạn bao gồm chúng trong định dạng này,
và sau đó đăng lên phía máy chủ đó,
máy chủ đổi lại sẽ gửi lại danh sách cập nhật của mục yêu thích cho bạn.
Vì vậy, khi bạn nhận được danh sách cập nhật các mục yêu thích từ phía máy chủ,
bạn sẽ thấy rằng thông tin của người dùng đã có,
nhưng lưu ý cách các món ăn yêu thích được lưu trữ trong mảng ID đối tượng món ăn này.
Vì vậy, cái đầu tiên chúng tôi đã thêm vào trong hoạt động trước đó.
Vì vậy, hai người còn lại,
chúng tôi chỉ cần thêm vào danh sách các mục yêu thích của chúng tôi.
Vì vậy, hai đối tượng ID cũng được thêm vào
mảng món ăn của tôi trong tài liệu yêu thích của tôi ở đây.
Vậy, anh đi đây. Vì vậy, đó là cách bạn phải thực hiện
các bài yêu thích trên điểm cuối như thế này.
Bây giờ, chúng ta hãy một lần nữa thực hiện một hoạt động get
trên mục yêu thích chỉ để xem những gì các tính năng hoạt động get cho chúng tôi.
Vì vậy, khi chúng tôi thực hiện thao tác GET,
bạn sẽ ngay lập tức nhận thấy rằng trong tài liệu yêu thích trở lại,
bạn có thông tin của người dùng ở
đó, và sau đó xuống dưới đây,
các món ăn là gì, nhưng một mảng tài liệu Json ở đây,
mỗi một tương ứng với một món ăn.
Bây giờ điều này được tự động thực hiện chăm sóc bởi các mongoose
populate mà chúng tôi đã thực hiện ở phía máy chủ.
Vì vậy, tất cả các thông tin này nên được tự động điền vào phía máy chủ.
Vì vậy, đó là cách hoạt động bài đăng của bạn trên hai điểm cuối hoạt động.
Bây giờ hãy để tôi chỉ cho bạn cách bạn sẽ thực hiện một thao tác DELETE.
Bây giờ để xóa một món ăn cụ thể.
Vì vậy, hãy để tôi thực hiện một thao tác xóa trên một điểm cuối cụ thể.
Vì vậy, chúng tôi sẽ quay trở lại điểm cuối này,
và sau đó để tôi chỉ sao chép một trong số này,
và sau đó tôi sẽ xóa một trong các món ăn.
Vì vậy, để thực hiện thao tác xóa trên một trong các món ăn,
tất nhiên như bạn thấy,
chúng tôi không cần cơ thể được nêu ra,
và chúng tôi không cần nội dung ở đây.
Tất cả những gì chúng ta cần làm là thực hiện một thao tác xóa trên điểm cuối này.
Vì vậy, ở đây bạn thấy rằng tôi đang làm localhost:3443/favorites/ và sau đó ID món ăn.
Và sau đó để tôi đăng bài này.
Vì vậy, khi tôi xóa một món ăn cụ thể từ danh sách yêu thích của tôi,
bạn ngay lập tức nhận thấy rằng
danh sách yêu thích cập nhật của tôi được gửi trở lại phía khách hàng bởi máy chủ.
Vì vậy, bạn có người sử dụng ở đây,
nhưng lưu ý rằng trong mảng món ăn tôi chỉ có hai món ăn bây giờ.
Cái mà tôi vừa xóa đã biến mất khỏi danh sách các món ăn đó.
Vì vậy, nếu bạn thực hiện một GET ngay bây giờ,
mảng món ăn của bạn sẽ liên tục đến các món ăn trong đó.
Bây giờ, giả sử tôi thực hiện một DELETE trên mục yêu thích ở đây.
Vì vậy, nếu tôi thực hiện DELETE trên điểm cuối yêu thích chính nó trực tiếp,
sau đó những gì nó sẽ làm là xóa tất cả các mục yêu thích của tôi và
cũng xóa tài liệu yêu thích của tôi hoàn toàn từ phía máy chủ.
Vì vậy, hãy để tôi thực hiện thao tác xóa ở phía máy chủ,
và sau đó nó sẽ trả lại thực tế là nó đã xóa tài liệu cụ thể này,
vì vậy nó chỉ trả về tài liệu này anyway.
Nhưng bây giờ nếu tôi thực hiện một hoạt động GET trong danh sách yêu thích của
tôi, tôi sẽ lấy một null ở đó. Có
nghĩa là tôi không có tài liệu này ở phía máy chủ.
Vì vậy, các tài liệu yêu thích là hoàn toàn biến mất,
khi tôi thực hiện thao tác DELETE trên cột máy chủ địa phương ba từ trước đây slash yêu thích.
Bây giờ một lần nữa, khi tôi thêm một món ăn mới vào danh sách yêu thích của
tôi, tài liệu yêu thích của tôi sẽ được thiết lập lại.
Điều đó hoàn toàn tốt cho chúng tôi để hoạt động cùng.
Vì vậy, với trình diễn này tôi đã cho bạn thấy
tất cả các hoạt động khác nhau mà bạn cần phải thực hiện ở phía máy chủ của bạn.
Tất cả các hoạt động khác nhau trên các điểm cuối tuyến đường khác nhau
mà bạn cần thực hiện hoặc thực hiện ở phía máy chủ.
Bây giờ bạn đã thấy
tất cả các hoạt động khác nhau mà phía máy chủ nên hỗ trợ trên các mục yêu thích gạch chéo,
và các mục yêu thích
gạch chéo, gạch chéo món ăn ID điểm cuối,
hãy để tôi liệt kê ba nhiệm vụ mà bạn cần phải hoàn thành trong nhiệm vụ này.
Nhiệm vụ đầu tiên của khóa học là thực hiện giản đồ và mô hình yêu thích.
Điều này bạn sẽ thực hiện trong thư mục mô hình trong một tập tin được gọi là NodeJS yêu thích.
Ở đó bạn sẽ thực hiện giản đồ yêu thích.
Hãy nhớ rằng giản đồ yêu thích sẽ lưu trữ
tham chiếu đến ID đối tượng tài liệu của người dùng,
và một mảng các món ăn tài liệu ID đối tượng.
Đó là gợi ý lớn về cách bạn phải thiết
kế lược đồ và mô hình cho mục yêu thích của bạn.
Nhiệm vụ thứ hai trong nhiệm vụ của bạn là để thực hiện các
hoạt động GET, POST và DELETE trên điểm cuối yêu thích gạch chéo.
GET sẽ giúp bạn có được tất cả các danh sách yêu thích,
dân cư tự động bởi dân cư của Mongo,
POST nên chứa một danh sách các món ăn như được chỉ
định trong định dạng mà tôi vừa chứng minh cho bạn trong nội dung của thông điệp POST.
Và vì vậy một loạt các món ăn sẽ được thêm vào danh sách yêu thích của bạn,
và DELETE hoạt động trên điểm cuối yêu thích gạch chéo sẽ
xóa tài liệu yêu thích của bạn hoàn toàn từ phía máy chủ.
Bây giờ nếu bạn thực hiện một hoạt động POST trên dấu gạch chéo yêu thích ID món ăn,
sau đó món ăn cụ thể sẽ được thêm vào danh sách yêu thích của bạn.
Nếu tài liệu yêu thích của bạn không tồn tại,
rõ ràng bạn cần tạo tài liệu yêu thích đó.
Vì vậy, đó cũng là một phần của hoạt động POST đó.
Vì vậy, nếu tại bất kỳ thời điểm nào bạn thấy rằng tài liệu yêu thích không tồn tại,
trước tiên bạn cần tạo tài liệu yêu thích và
sau đó thêm món ăn này vào tài liệu yêu thích.
Vì vậy, đó là một điểm quan trọng cũng cần lưu ý.
Khi bạn thực hiện một bài đăng trên điểm cuối yêu thích dấu gạch chéo,
nếu tài liệu yêu thích không tồn tại,
bạn cần phải tạo một tài liệu yêu thích và sau đó thêm các món ăn vào tài liệu yêu thích của bạn.
Nếu nó đã tồn tại,
thì bạn chỉ cập nhật tài liệu yêu thích đó.
Vì vậy, đây là một gợi ý nữa về cách bạn phải thực hiện các hoạt động POST.
Nếu bạn thực hiện một thao tác DELETE trên các mục yêu thích gạch chéo dấu gạch chéo ID món ăn,
sau đó món ăn cụ thể đó sẽ bị xóa khỏi danh sách yêu thích.
Bây giờ trong việc thực hiện các hoạt động POST và DELETE,
bạn nên đảm bảo rằng bạn sẽ không thêm bản sao vào ID món ăn.
Vì vậy, trước khi bạn thêm một ID đối tượng món ăn vào danh sách các món ăn,
luôn luôn kiểm tra để đảm bảo nếu ID món ăn đã tồn tại trong danh sách các món ăn.
Bây giờ đây là nơi bạn có thể sử dụng các mảng IndexOf phương pháp để kiểm tra xem
nếu một tài liệu ID đã tồn tại trong một mảng các tài liệu.
Vì vậy, đó là một gợi ý lớn về cách bạn sẽ thực hiện phần đó.
Và nhiệm vụ thứ ba tất nhiên là gắn
bộ định tuyến yêu thích trên các điểm cuối yêu thích gạch chéo bằng cách cập nhật tệp app.js.
Bản thân bộ định tuyến yêu thích sẽ được thực hiện
trong thư mục route trong tệp favoriterouter.js.
Vì vậy, với điều này tôi đã mô tả những gì bạn
phải thực hiện trong nhiệm vụ thứ tư và cuối cùng.
Và tôi hy vọng rằng nhiệm vụ này sẽ giúp bạn
củng cố tất cả mọi thứ mà bạn đã học được trong khóa học,
tất cả các cách từ thiết kế bộ định tuyến nhanh,
làm MongoDB và cũng là lược đồ và mô hình của Mongo,
và cũng thực hiện xác thực người dùng thích hợp.
Và như tôi đã đề cập một lần nữa,
chỉ có một người dùng được xác thực mới có quyền truy cập vào danh sách yêu thích của mình.
Ngay cả các hoạt động GET chỉ có thể được thực hiện bởi
một người dùng xác thực trên điểm cuối yêu thích gạch chéo.
Và bạn sẽ chỉ lấy các mục yêu thích cho người dùng cụ thể đó.
Bạn không thể cho phép người dùng khác truy cập vào mục yêu thích của người dùng khác.
Vì vậy, một lần nữa, điều đó cũng cho bạn biết làm thế nào bạn phải thực
hiện xác thực trên các điểm cuối tuyến đường khác nhau.
Với điều này, tôi hoàn thành mô tả các nhiệm vụ trong nhiệm vụ thứ tư.
Hãy vui vẻ hoàn thành nhiệm vụ này.