我试图将一个对象发送到我的模型中的数组,但每次我都这样做,数组仍然是空的。
我将对象传递给后端,它到达此处:
var addFavoriteRecipe = function(req, res){
if(req.user){
console.log(req.body);
userModel.User.find({_id: req.user._id}, {$push :{favoriteRecipes: {name: req.body.alias, _id: req.body._id}}}, function(err){
if(err){
res.send(err);
}else{
res.send("success!");
}
});
}else{
var sendBackError = {err: true, message: "You are not logged in."}
res.send(sendBackError);
}
}
控制台登录req.body
显示我传回的所有数据,并且有两个字段我试图推入阵列。
这是我的模特:
var userSchema = mongoose.Schema({
username: {
type: String,
required: true,
unique: true
},
email: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
},
friendsList: {
type: Array,
},
favoriteRecipes: {
type: Array,
}
});
我已经玩弄了这些代码,但我真的很想知道应该从哪里开始。我想在我的模特身上看到它,但我并不完全确定。
答案 0 :(得分:0)
您可以通过以下方式为对象数组定义模型:
favoriteRecipes: { type : Array , "default" : [] }
或
userModel.User.find(
{_id: req.user._id},
{ $push : {favoriteRecipes: {name: req.body.alias, _id: req.body._id}}},
function(err){
if(err){
res.send(err);
}else{
res.send("success!");
}
});
但是,问题似乎在这里:
find
您正在使用update
,需要将其更改为 userModel.User.update(
{_id: req.user._id},
{ $push : { favoriteRecipes: {name: req.body.alias, _id: req.body._id}}},
function(err){
if(err){
res.send(err);
}else{
res.send("success!");
}
});
:
.htaccess