Bây giờ chúng ta đã tìm hiểu về dân số Mongoose,
và làm thế nào nó cho phép chúng ta để điền vào một tài liệu với thông tin từ một tài liệu khác.
Trong bài tập này, chúng tôi sẽ sửa đổi máy chủ express mà chúng tôi đã làm việc trên cho đến nay.
Trong giản đồ món ăn mà chúng tôi đã xác định trước đó, chúng tôi đã có ý kiến.
Đối với các nhận xét, chúng tôi đã có trường tác giả
mà chúng tôi sử dụng để lưu trữ các chi tiết về tác giả.
Trong bài tập này, chúng tôi sẽ biến trường tác giả thành một tham chiếu đến một tài liệu người dùng,
và chúng tôi sẽ sử dụng dân số Mongoose để điền thông tin
vào tài liệu món ăn như và khi cần thiết
để cung cấp thông tin cho khách hàng.
Bây giờ việc sử dụng dân cư và dân số Mongoose nên được thực hiện
một cách khôn ngoan để không gây ra quá nhiều chi phí ở phía máy chủ.
Bây giờ trong bài tập này,
chúng tôi sẽ sử dụng nó đơn giản để điền thông tin
vào lĩnh vực tác giả của ý kiến của chúng tôi.
Vì vậy, chúng ta hãy tiến hành bài tập để tìm hiểu cách chúng ta sử dụng dân số Mongoose.
Để bắt đầu bài tập này,
hãy vào dự án và mở tệp user.js.
Vì vậy, trong tệp user.js,
chúng tôi lưu trữ lược đồ người dùng.
Tôi sẽ sửa đổi lược đồ người dùng bằng cách thêm vào một vài lĩnh vực khác trong đó.
Một là tên đầu tiên,
mà sẽ là
chuỗi kiểu và
mặc định sẽ là một chuỗi rỗng.
Vì vậy, tên đầu tiên như tên ngụ ý,
lưu trữ tên đầu tiên cho người dùng và sau đó chúng tôi sẽ có một trường khác gọi
là họ, cũng có cùng loại.
Vì vậy, tôi sẽ chỉ sao chép hai mẩu thông tin và sau đó sao chép nó ở
đây và vì vậy bây giờ tài liệu người dùng của chúng tôi sẽ chứa,
ngoài tên người dùng và mật khẩu,
tên người dùng và hush và muối mà chúng ta đã thấy trước
đó, được tự động thêm vào bởi các mô-đun Mongoose địa phương hộ chiếu .
Chúng tôi cũng sẽ có tên và họ cho người dùng đang được xác định ở đây.
Sau đó chúng ta sẽ thấy cách chúng ta sẽ khởi tạo
các giá trị này bằng cách sửa đổi quá trình đăng ký của người dùng.
Bây giờ một khi chúng tôi đã hoàn thành điều này,
vì vậy theo cách này thông tin của người dùng
chỉ đơn giản có thể được truy xuất bằng cách tìm kiếm tài liệu người dùng ở đây.
Vì vậy, bây giờ chúng ta có thông tin về người dùng trong tài liệu người dùng,
đi vào giản đồ món ăn,
do đó, đi vào tập tin dishes.js.
Trong giản đồ món ăn trước đó,
chúng tôi đã lưu trữ tác giả của tài liệu dưới dạng một chuỗi ở đây.
Bây giờ chúng ta sẽ tận dụng sự thật là chúng ta
có sự hỗ trợ của dân số khỉ.
Vì vậy, tôi sẽ biến các lĩnh vực bình luận từ một chuỗi thành
mongoose giản đồ loại đối tượng ID.
Vì vậy, theo cách này, xin lỗi, sai lĩnh vực.
Tôi có nghĩa là để biến lĩnh vực tác giả thành
mongoose giản đồ loại đối tượng ID.
Vì vậy, trường tác giả bây giờ thay vì lưu trữ một chuỗi,
sẽ có một tham chiếu đến tài liệu người dùng.
Vì vậy, khi tôi biến trường tác giả thành loại này,
thì thuộc tính thứ hai mà tôi định nghĩa ở đây sẽ là một tham chiếu,
đó sẽ là một tham chiếu đến mô hình người dùng.
Vì vậy, theo cách này, bây giờ chúng ta sẽ được
kết nối lĩnh vực tác giả này và lĩnh vực tác giả này sẽ
chỉ đơn giản là lưu trữ một tham chiếu đến ID
của tài liệu người dùng, thay vì lưu trữ các chi tiết về tác giả dưới dạng một tên.
Bây giờ khi chúng tôi làm điều đó,
chúng tôi có thể sử dụng mongoose populate để điền
thông tin này vào tài liệu món ăn của chúng tôi bất cứ khi nào cần thiết.
Vì vậy, với sửa đổi này cho lược đồ món ăn, trong tập tin dishes.js,
bây giờ chúng ta sẽ cập nhật bộ định tuyến món ăn để sử dụng quần thể mongoose.
Vì vậy, đi đến dishRouter.js.
Trong bộ định tuyến món ăn, nhớ lại rằng khi chúng tôi đã nhận được một món ăn ở đây,
bây giờ khi bạn nhận được các món ăn ở đây,
chúng tôi nói món ăn tìm thấy sau đó.
Vì vậy, ngay tại thời điểm đó,
chúng tôi sẽ nói các món ăn tìm thấy và chúng tôi sẽ nói sau này, cư trú.
Vì vậy, chúng tôi đang sử dụng hỗ trợ dân số trong mongoose
và chúng tôi sẽ nói cư ý kiến tác giả.
Vì vậy, bằng cách nói điều này,
chúng tôi đang nói khi
các món ăn tài liệu đã được xây dựng để gửi trả lời cho người dùng,
chúng tôi sẽ cư trú các lĩnh vực tác giả bên trong đó từ tài liệu người dùng trong đó.
Vì vậy, cuộc gọi này đến dân cư sẽ đảm bảo rằng
các lĩnh vực khác sẽ được dân cư với các thông tin theo yêu cầu.
Tương tự như vậy, đi đến ID món ăn ở đây,
ngay cả trong ID món ăn, cùng một điều.
Chúng tôi sẽ nói dân cư và ý kiến tác giả thêm
vào các món ăn tìm thấy bởi id
trong get của /dish ID điểm cuối.
Tương tự như vậy, trong các ý kiến cũng khi chúng tôi lấy các món ăn,
chúng ta sẽ nói cư ý kiến tác giả ở đây và
điều tương tự cũng trong router món ăn,
ý kiến ID món ăn, ý kiến ID cũng.
Thông tin này càng lớn ở đó.
Bây giờ tất nhiên, điều này có nghĩa là khi bạn đang đăng các món ăn,
trước đó bạn đang bao gồm các thông tin tác giả trong nội dung của thông điệp.
Vì vậy, bây giờ ở đây khi chúng tôi cố gắng đẩy bình luận vào đó,
vì vậy bài đăng này tương ứng với lĩnh vực nhận xét ID món ăn.
Vì vậy, đây là cách chúng tôi đã đăng một bình luận cho một món ăn cụ thể.
Vì vậy, bây giờ trong bài viết này,
vì chúng ta không lưu trữ thông tin về tác giả nữa,
vì vậy những gì chúng ta cần làm là khi chúng ta đẩy mục vào trường tác giả ở đó.
Vì vậy, ở đây khi bạn đang điền thông tin vào các món ăn,
chúng ta sẽ phải đầu tiên -
Nhớ lại rằng cơ thể chứa bình luận đã có,
nhưng tài sản tác giả sẽ không có trong cơ thể của thông điệp trong cuốn sách,
nhưng tùy thuộc vào người dùng đang đăng thông tin này,
chúng ta có thể ngay lập tức điền vào các lĩnh vực tác giả.
Bây giờ, làm thế nào để chúng tôi biết người dùng nào đang đăng thông tin này?
Thực tế là chúng tôi đã thực hiện người dùng xác minh ở đây cho bài đăng,
có nghĩa là một người dùng cụ thể
đang đăng thông tin này, và bằng cách thực hiện người dùng xác minh,
chúng tôi đã tải trong req.user vào đối tượng yêu cầu.
Trong đối tượng yêu cầu,
chúng ta có thể đi vào và nói xác tàu người dùng,
và sau đó gạch dưới ID ở đây.
Vì vậy, một lần nữa để tôi nhắc lại điểm này,
làm thế nào chúng ta có được thông tin của tác giả ở đây?
Bây giờ, nhớ lại rằng chúng tôi cập nhật lược đồ món ăn,
do đó trường tác giả trong bình luận sẽ chỉ đơn giản lưu trữ
ID đối tượng đề cập đến người dùng đang đăng bình luận này.
Bây giờ, làm thế nào để chúng ta biết người dùng nào đang đăng bình luận này?
Bây giờ một lần nữa, để nhắc lại điểm này,
nhớ lại rằng khi chúng tôi xác minh người dùng ở đây bằng cách gọi xác thực người dùng,
hộ chiếu được ủy quyền JWT sẽ nạp
thông tin người dùng vào cơ thể yêu cầu dưới dạng req.user.
Vì vậy, người dùng đó sẽ chứa ID
của người dùng cụ thể mà thực sự là đăng bình luận này.
Vì vậy, chúng tôi đã xác minh tính xác thực của người dùng,
và do đó ID người dùng chỉ đơn giản có thể thu được bằng cách nói req.user.
_ID, và ID của người dùng đó,
tôi sẽ gán điều này cho lĩnh vực tác giả ra khỏi nhận xét.
Bây giờ khi nhận xét xuất hiện,
nhận xét trong nội dung của tin nhắn yêu cầu sẽ
chỉ chứa trường xếp hạng và trường nhận xét.
Bây giờ chúng tôi không muốn rõ ràng gửi lĩnh vực tác giả nữa từ phía khách hàng,
thay vào đó nên được tự động chèn vào
phía máy chủ dựa trên tính xác thực
của người dùng Đó là điểm mà tôi đã được
nhắc lại trong sửa đổi này mà tôi đã thực hiện ở đây.
Vì vậy, thông tin người dùng được tự động thu được từ req.user được
nạp vào cơ thể của thông báo yêu cầu bởi xác thực xác thực người dùng,
đó là sẽ sử dụng Hộ chiếu xác thực với chiến lược JWT đó.
Ngoài ra, bây giờ khi chúng tôi nhận được món ăn cập nhật ở đây,
chúng ta cần phải điền thông tin của tác giả vào món ăn.
Vì vậy, tại thời điểm này,
khi chúng tôi nhận được món ăn ở đây,
sau đó chúng tôi sẽ tìm kiếm các món ăn ở đây.
Vì vậy, chúng ta sẽ nói dishes.findByID
và sau đó cung cấp ID món ăn như là tham số ở đây,
vì vậy chúng tôi sẽ nói tìm thấy ID,
ID món ăn, và sau đó,
chúng ta cần phải cư trú các ý kiến tác giả ở đây,
và sau đó chúng tôi sẽ nói sau đó món ăn.
Bên trong đó, chúng tôi sẽ gửi thông tin món ăn này trở lại cho người dùng ở đây.
Vậy, để tôi cắt nó và dán nó vào đây.
Vì vậy, sửa đổi này là bắt buộc bởi vì bây giờ tôi cần phải điền
thông tin của tác giả trở lại
vào bình luận trước khi tôi có thể gửi lại hiện tại cho người dùng.
Vì vậy, đây là sửa đổi bổ sung mà chúng ta cần
làm khi chúng ta sử dụng quần thể Mongoose ở đây.
Tương tự như vậy, bây giờ đi vào đặt,
khi chúng tôi sửa đổi một bình luận cụ thể với ID nhận xét,
vì vậy đây là dưới ID món ăn nhận xét ID một phần.
Vì vậy, khi chúng tôi làm việc đặt ở đây,
vì vậy chúng tôi đầu tiên tìm thấy các món ăn tìm thấy bởi id req params món ăn ID,
sau đó trong món ăn.
Vì vậy, điều đầu tiên mà chúng tôi kiểm tra là để đảm bảo rằng nếu món ăn không phải là null,
và nhận xét món ăn ID không phải là null,
vì vậy chúng tôi đã kiểm tra để đảm bảo rằng bình luận thực sự là hiện diện trong món ăn,
và sau đó khi món ăn chính nó được trả lại,
sau đó chúng ta cần phải tìm kiếm lại
món ăn vì chúng ta cần phải cư trú các ý kiến tác giả vào món ăn.
Vì vậy, ở đây, chúng ta sẽ nói dishes.findByID (dish ID),
lý do chúng ta cần phải thực hiện một tìm kiếm nữa là bởi vì
chúng ta cần phải điền vào các bình luận .author ở đây, vì
vậy đó là lý do duy nhất tại sao chúng ta cần phải thực hiện một tìm kiếm nữa ở đây.
Sau đó, khi chúng tôi nhận được các món ăn ở đây,
rõ ràng là bởi vì chúng tôi chỉ cập nhật các món ăn để các thông tin món ăn nên được
tìm thấy trong cơ sở dữ liệu,
do đó nên làm việc tốt và sau đó bên trong sẽ nói
mã trạng thái rủi ro 200 res thiết lập tiêu đề nội dung loại ứng dụng json,
và sau đó trả lại các món ăn ở đây,
và sau đó chúng tôi sẽ xử lý lỗi ở đây,
và sau đó những người khác nếu các món ăn
bây giờ và cũng là các lỗi khác mà chúng tôi đã thiết lập trước đó,
họ sẽ được xử lý như bình thường ở đây.
Vì vậy, đây là những thay đổi bổ sung mà chúng ta cần đảm bảo khi bạn cập nhật món ăn,
khi bạn đang gửi lại bình luận cập nhật hoặc cập nhật món ăn,
sau đó chúng tôi sẽ điền bình luận trong món ăn ở đây.
Tương tự như vậy, đi đến xóa ở đây,
và sau đó sau khi xóa nhận xét,
một lần nữa chúng tôi sẽ được lấy các món ăn và điền thông tin tác giả.
Vì vậy, hãy để tôi chỉ sao chép phần này,
và sau đó chúng tôi sẽ làm chính xác cùng một điều ở đây,
vì vậy chúng tôi sẽ nói món ăn tiết kiệm,
sau đó chúng tôi sẽ được sau đó kiểm tra món dịch.FindByid (tác giả món ăn),
và sau đó chúng tôi sẽ cư tác giả ý kiến,
và sau đó chúng tôi sẽ nói (sau đó) món ăn,
và sau đó res.StatusCode, và như vậy,
và xử lý lỗi còn lại giống như trước đây.
Vì vậy, với sửa đổi này cho bộ định tuyến món ăn,
bây giờ điểm cuối cùng mà chúng ta cần phải xem xét là thực tế là trong tập tin user.js,
bây giờ chúng tôi đã thêm vào
các lĩnh vực, tên đầu tiên và tên cuối cùng mà theo mặc định sẽ là chuỗi rỗng.
Vì vậy, khi người dùng đăng ký,
chúng ta nên cho phép người dùng cung cấp
tên và họ trong quá trình đăng ký.
Bây giờ, điều đó diễn ra ở đâu?
Điều đó diễn ra trong người dùng's.js.
Vì vậy, đi đến người dùng users.js,
khi người dùng đăng trên đăng ký dấu gạch chéo,
trước đó chúng tôi chỉ đăng tên người dùng và mật khẩu.
Ngoài hai,
trong đối tượng json mà chúng tôi bao gồm trong nội dung của thông điệp yêu cầu đến,
thông điệp yêu cầu gửi đến từ phía khách hàng,
chúng tôi cũng có thể bao gồm tên và họ cho người dùng.
Vì vậy, khi tên và họ cho người dùng được bao gồm,
vậy tôi sẽ làm gì ở đây?
Vì vậy, nhớ lại rằng khi bạn nói user.register tại thời điểm này thông tin người dùng đi vào,
và sau đó bạn đã gửi tên người dùng ở đây,
và bạn cũng đã gán mật khẩu ở đây sẽ được
biến thành băm và muối bởi các mongoose địa phương hộ chiếu.
Bây giờ, nếu không có lỗi có nghĩa là đăng ký của người dùng đã thành công,
và vì vậy tại thời điểm này những gì chúng tôi sẽ làm là chúng tôi sẽ nói nếu req.body.
Tên. Vì vậy, có nghĩa là nội dung của thông điệp yêu cầu đến,
nếu nó chứa tên đầu tiên,
sau đó chúng ta sẽ nói user.firstname bằng req.body.firstname.
Tương tự như vậy, cho tên cuối cùng cũng.
Vì vậy, tại thời điểm này,
chúng tôi sẽ có người dùng có sẵn ở đây.
Xem người dùng đang đến như là tham số thứ hai cho chức năng gọi lại này ở đây.
Vì vậy, chúng tôi đang thiết lập tên đầu tiên bằng cách thay đổi
thuộc tính tên đầu tiên bên trong tài liệu người dùng ở đây nói, req.body.firstname.
Nếu nó tồn tại, sau đó chúng tôi sẽ đặt tên của người dùng để đó.
Tương tự, nếu tên cuối cùng req.body.có sẵn,
vì vậy chúng tôi cũng sẽ cập nhật họ của người dùng dưới dạng req.body.lastname.
Và một khi chúng tôi đã thực hiện hai thay đổi này đối với tên và họ,
sau đó chúng ta cần phải lưu sửa đổi mà chúng tôi đã thực hiện cho người dùng.
Vì vậy, chúng tôi vừa cập nhật người dùng.
Vì vậy, chúng ta sẽ nói user.save sau đó điều này sẽ
trả lại lỗi hoặc người dùng.
Vì vậy, nếu sửa đổi đã được lưu đúng cách,
sau đó nó sẽ trả lại lỗi,
nếu không nó sẽ trả lại giá trị người dùng và hộ chiếu này xác thực chúng tôi sẽ
làm điều đó bên trong người dùng này ở đây.
Vì vậy, chúng ta sẽ nói, user.save (err, user).
Và sau đó chúng ta cũng cần phải kiểm tra chéo để đảm bảo rằng
nếu có một lỗi trong việc lưu các thay đổi cho người dùng,
sau đó chúng ta sẽ nói res mã trạng thái 500,
vì vậy hãy để tôi sao chép điều này từ đó.
Vì vậy, chúng ta sẽ nói res mã trạng thái 500,
res thiết lập tiêu đề nội dung loại ứng dụng json và res.jason đây.
Sau đó, và chúng ta sẽ trở lại thời điểm này.
Nếu không có lỗi,
thì tất nhiên bạn xác thực người dùng bằng cách gọi
hộ chiếu xác thực với địa phương để đảm bảo rằng
việc đăng ký người dùng đã thành công và điều này nên được
thực hiện đúng và khi nào bạn sẽ trả lại tin nhắn này về phía khách hàng.
Chúng ta cần đóng người dùng.save này ở đây.
Vì vậy, hãy chắc chắn rằng bạn đóng điểm cuối này một cách chính xác.
Vì vậy, user.save được đóng ở đây, và đó là nó.
Đây là những thay đổi mà chúng ta cần thực hiện cho người dùng.
Vì vậy, do đó, sau khi người dùng được đăng ký với tên người dùng đã cho và mật khẩu đã cho,
sau đó sau khi người dùng được đăng ký thành công,
sau đó chúng tôi sẽ thiết lập tên và trường họ
của tài liệu người dùng bằng cách sử dụng hai ở đây.
Chúng tôi muốn đảm bảo rằng người dùng đã
đăng ký thành công trước khi chúng tôi gửi tên và họ cho điều đó.
Vì vậy, đó là lý do tại sao chúng tôi đang thực hiện thao tác này sau khi người dùng
đã đăng ký thành công. Đó là nó.
Hãy lưu các thay đổi và đi và kiểm tra máy chủ.
Sau khi lưu các thay đổi,
bây giờ chúng ta hãy đi đến thiết bị đầu cuối và
sau đó trước khi tôi khởi động máy chủ,
hãy để tôi kiểm tra MongoDB của tôi và xóa người dùng mà chúng tôi đã đăng ký trước đó.
Vì vậy, chúng tôi sẽ nói sử dụng nhầm lẫn và sau đó chúng tôi sẽ nói db.usersfind.
Vì vậy, chúng tôi biết rằng người dùng cụ thể này đã được đăng ký trước đó,
nhưng khi chúng tôi đăng ký người dùng đó,
chúng tôi đã không đăng ký tên và họ cho người dùng.
Vì vậy, tôi sẽ xóa người dùng này và sau đó đăng ký lại người dùng.
Vì vậy, để làm điều đó bằng cách sử dụng gợn sóng Mongo, tôi sẽ nói người dùng db thả,
và sau đó chúng ta sẽ nói người dùng db tìm thấy,
và đó sẽ trả về một trống rỗng.
Không có người dùng đăng ký ở đó và sau đó chúng tôi sẽ thoát khỏi gợn sóng Mongo.
Và như vậy, một khi chúng tôi đã xóa người dùng đã đăng ký
đó, sau đó, hãy để tôi khởi động máy chủ của tôi.
Và một khi máy chủ đang hoạt động và chạy,
chúng ta hãy vào Postman và sau đó đăng ký
một người dùng mới cùng với tên và họ của người dùng.
Sau đó, họ sẽ đăng nhập với tư cách là người dùng đó và sau đó chúng ta sẽ xem xét cách
dân số Mongoose giúp chúng ta
tự động điền thông tin về người dùng vào tài liệu đó.
Bây giờ đi đến Postman,
để tôi làm một đăng ký của một người dùng mới.
Vì vậy, tôi đang làm một bài localhost: 3000 người dùng đăng ký.
Trong nội dung của tin nhắn,
chúng tôi đã có tên người dùng và mật khẩu đã có trong đó.
Hãy để tôi thêm vào hai trường bổ sung:
tên, họ.
Sau đó, đăng ký người dùng đó.
Vì vậy, một khi tôi đăng ký người dùng,
bạn có thể thấy rằng đăng ký đã thành công.
Bây giờ, hãy để tôi đăng nhập với tư cách là người dùng này.
Vì vậy, để đăng nhập với tư cách là người dùng,
hãy để tôi làm một bài đăng và kiểm tra chéo để đảm bảo.
Vì vậy, tôi đang làm một bài đăng cho người dùng đăng nhập.
Hãy để tôi kiểm tra chéo và tôi thấy rằng tên người dùng và mật khẩu được gõ chính xác trong đó.
Vì vậy, khi tôi đăng nhập,
tôi sẽ đăng nhập thành công và tôi sẽ có thể có được mã thông báo này ở đó.
Bởi vì mã thông báo này là điều cần thiết để chúng tôi có thể thêm vào một món ăn vào trang web máy chủ của chúng tôi.
Vì vậy, sau khi bạn có được mã thông báo,
sao chép chuỗi mã thông báo này và lưu nó bởi vì bạn sẽ cần điều đó
trong tiêu đề ủy quyền cho bài đăng
đặt và xóa các hoạt động mà bạn sẽ thực hiện sau này.
Vì vậy, để tôi sao chép mã thông báo đó.
Bây giờ, thông thường cách tôi sẽ giữ các thẻ này là,
rằng tôi sẽ chỉ mở một tài liệu văn bản và sau đó sao chép và dán nó vào tài liệu văn bản.
Vì vậy mà đối với các yêu cầu người đưa thư tiếp theo,
tôi chỉ có thể sao chép chuỗi này và sau đó dán nó
vào tiêu đề ủy quyền, nếu cần thiết.
Vì vậy, hãy để tôi sao chép mã thông báo đó và ở đây tôi có một tài liệu văn bản mở ở đây.
Vì vậy, tôi sẽ dán chuỗi đó vào tài liệu văn bản này.
Vì vậy, ở đây chúng tôi có mã thông báo mà chúng tôi đã thu được.
Bây giờ chúng ta hãy đi và gửi một món ăn đến máy chủ của chúng tôi.
Quay trở lại với người đưa thư,
để tôi gửi một cái đĩa lên máy chủ.
Vì vậy, đây là nơi tôi sẽ chọn bài đăng ở đây.
Bên trong đây, tôi có thông tin món ăn mà tôi đã sử dụng trước đó nhưng cho các ý kiến,
bây giờ, nhớ lại rằng trước đó chúng tôi đã có lĩnh vực tác giả được lưu trữ một chuỗi.
Vì vậy, tất cả những ý kiến này không hợp lệ.
Vì vậy, tôi sẽ xóa tất cả các ý kiến này từ gửi bởi vì,
bây giờ, chúng tôi mong đợi người dùng để đăng bình luận của riêng mình.
Khi người dùng đăng bình luận,
chúng tôi sẽ tự động thêm ID của người dùng vào trường tác giả của nhận xét.
Vì vậy, để tôi đăng món ăn này ở đây.
Đi đến tiêu đề,
trong tiêu đề ủy quyền, tôi sẽ nói,
người mang và sau đó, dán mã thông báo và sau đó gửi.
Tôi nên làm một bài viết về điều đó.
Vì vậy, tôi sẽ nói bài đăng và vì vậy khi tôi đăng ngay bây giờ,
bạn thấy rằng món ăn này đã được đăng trên phía máy chủ,
và với mảng ý kiến trống rỗng tại thời điểm này.
Vì vậy, sau khi tôi đăng món ăn này,
để tôi sao chép ID của món ăn này.
Vì vậy, hãy để tôi sao chép ID này cho món ăn bởi vì tôi sẽ
cần điều đó để đăng bình luận cho món ăn này.
Sau đó, đi đến trình soạn thảo văn bản của
tôi, tôi sẽ lưu ID của món ăn ở đây.
Bây giờ, tất nhiên, một khi bạn xây dựng phía khách hàng của bạn,
khách hàng của bạn sẽ tự động có tất cả các thông tin này.
Vì vậy, khách hàng của bạn sẽ tự động có thể gửi mã thông báo và vân vân.
Vì vậy, bạn không cần phải làm điều cắt và dán này nhưng với người đưa thư,
đây là cách duy nhất để chúng tôi có thể thêm bất kỳ thông tin nào vào yêu cầu đưa thư của chúng tôi,
mà đi ra từ người đưa thư đến máy chủ.
Bây giờ, để thuyết phục bản thân rằng món ăn này thực sự tồn tại,
hãy để tôi làm một get trên máy chủ địa phương: 3000/món ăn.
Khi tôi làm một get, bạn thực sự có thể thấy rằng
món ăn đặc biệt này tồn tại ở phía máy chủ.
Vì vậy, bây giờ chúng ta hãy thử đăng bình luận.
Vì vậy, để đăng một bình luận, chúng ta
hãy làm một bài đăng và chúng ta sẽ nói,
localhost:3000/món ăn, dấu gạch chéo và ID của món ăn mà
tôi vừa sao chép, và dấu gạch chéo ý kiến.
Khi bạn đăng trên các ý kiến,
bạn cần phải chắc chắn rằng trong cơ thể chúng tôi sẽ thêm vào bình luận ở đây.
Vì vậy, một bình luận điển hình chứa
một đánh giá của nói
năm và sau đó bình luận.
Vì vậy, hãy để tôi gõ vào một số bình luận ngẫu nhiên,
chỉ để chứng minh cho bạn.
Vì vậy, điều này nên nằm trong nội dung của bài đăng cho các ý kiến và trong tiêu đề,
chúng ta nên thêm tiêu đề ủy quyền.
Vì vậy, đối với tiêu đề ủy quyền, chúng tôi sẽ nói, người mang.
Tôi cần dán mã thông báo ở đây,
dán giá trị mã thông báo mà tôi đã lưu trước đó.
Bây giờ chúng ta hãy đăng bình luận này.
Sau đó, khi nhận xét được đăng,
chúng ta hãy nhìn vào giá trị trả về ở đây.
Vì vậy, khi bạn duyệt xuống,
bạn có thể thấy rằng món ăn mà nhận xét đã được thêm vào, đã được trả lại. Lưu
ý rằng thông tin món ăn là có nhưng lưu ý đặc biệt,
những gì được chứa trong bình luận đã được đăng ở đây.
Vì vậy, như bạn có thể thấy, bạn đã biết rằng cập nhật và
tạo tại các trường được tự động thêm vào bởi mongoose.
Xếp hạng và nhận xét mà chúng tôi đã gửi là
ngay ở đó nhưng lưu ý cách trường tác giả
bây giờ chứa ID tương ứng với người dùng.
Bây giờ, như chúng ta đã thấy trong mã như thế nào thông tin lĩnh vực tác giả được thêm vào, bây giờ,
nếu bạn làm một get trên các món ăn,
bạn sẽ nhận thấy rằng lĩnh vực tác giả này sẽ được
tự động điền vào bởi các thông tin người dùng ở đây.
Vì vậy, bây giờ chúng ta hãy làm một get trên localhost: 3000/món ăn.
Vì vậy, khi bây giờ chúng ta làm một get vào thời điểm này,
bây giờ bạn sẽ nhận thấy rằng trong các món ăn ở đây,
ngay tại đó, các thông tin về món ăn đã có
mặt nhưng lưu ý làm thế nào các bình luận bây giờ được xây dựng.
Các bình luận bây giờ chứa,
các trường bình luận đánh giá như chúng ta đã thấy trước đó,
cập nhật và tạo ra tại,
nhưng lưu ý những gì đã xảy ra với lĩnh vực tác giả ở đây.
Vì vậy, khi bạn làm một yêu cầu get bởi vì chúng tôi đã làm một populate
ở phía máy chủ khi các hoạt động get được gọi,
các populate đã tự động điền
thông tin tác giả vào vị trí trong lĩnh vực tác giả ở đây.
Vì vậy, trong đó, bạn có thể thấy rằng từ tác giả,
bây giờ bạn có thể tìm kiếm
họ và thông tin tên tự động từ trường tác giả.
Vì vậy, nếu bạn cần xây dựng một nhận xét,
bây giờ bạn có đánh giá,
nhận xét, và cũng là tên và họ
của tác giả tự động đưa vào tài liệu này.
Ngoài ra, tên người dùng cũng được bao gồm trong tài liệu này.
Vì vậy, đây là cách bạn có thể thêm thông tin từ một tài liệu khác và cư
một tài liệu thứ hai với thông tin đó trước khi bạn trả lời trở lại từ trang web máy chủ.
Vì vậy, đây là việc sử dụng quần thể mongoose và làm thế nào chúng ta
có thể tự động điền thông tin vào một tài liệu mongoose.
Với điều này, chúng tôi hoàn thành bài tập này.
Trong bài tập này, chúng ta đã thấy việc sử dụng quần thể mongoose và chúng ta cũng đã thấy
làm thế nào chúng ta có thể điền thông tin từ một tài liệu vào một tài liệu khác.
Theo đó, khi chúng tôi sửa đổi máy chủ để thực hiện dân số cho các yêu cầu,
mongoose sẽ tự động chăm sóc của điền thông tin này cho chúng tôi.
Tất cả những gì chúng ta cần làm,
là lưu trữ tham chiếu đến tài liệu khác dưới dạng ID đối tượng,
trong tài liệu mà bạn muốn nhập thông tin này.
Với điều này, chúng tôi hoàn thành bài tập này.
Đây là thời điểm tốt để bạn thực hiện một git-commit với thông điệp, dân số mongoose.