使用猫鼬的填充物将用户喜欢的“食物”添加到用户对象中。
设置:
User.findById(req.user._id, function(err, user) {
var newFood = new Food({
name: "tacos",
image: 'test',
});
user.foods = newFood
user.save();
然后:
router.get("/dashboard", function (req, res) {
User.find({currentUser: req.user})
.populate({path: 'foods'}).
exec(function (err, foods) {
if (err) return (err);
当我console.log user.foods.name未定义时。 user.foods是一个对象
如何获取user.foods.name?在这种情况下,需要“炸玉米饼”
答案 0 :(得分:-1)
您的问题是,您尚未真正了解callbacks
和async/await
的工作方式。您的代码执行并没有按照您希望的方式执行,因此您将着陆于尚未设置变量的部分。
这个问题不能回答只有这个特定的问题/答案。
请观看一些有关什么是回调的教程(或者,如果愿意,请阅读)。
如果您可以自由选择JS的版本,那么我建议您使用async/await
。它使事情变得更加结构化,可读性和可理解性。
但是:首先,您需要完全了解它。只是复制 - 粘贴它会导致错误和误解(相信我)。
就像Google那样找到那些指南,我个人会搜索youtube-tutorial(有成百上千的结构化指南)。