我POST
我的后端的用户对象,我希望能够使用Mongoose将此用户直接保存到我的数据库。
但是,如果我为对象分配一个新模型,它会覆盖save方法。
e.g。
var user = new User();
user = req.body.user //save no longer available
user.save(function(err){
...
}
有没有办法克服这个问题,因为我必须将用户的每个字段分配给模型,如下所示:
var user = new User();
user.email = req.body.user.email;
user.name = req.body.user.name;
...
答案 0 :(得分:3)
您正在使用user
值重新分配变量req.body.user
,以便丢弃您最初分配的新模型。
var foo = 'first'; // declares foo and assigns 'first' to it
foo = 'second'; // reassigns foo with value 'second'
var user = new User(); // declares user and assigns a new User model instance
user = req.body.user // reassigns user with value from req.body.user
您可以将值传递给User模型构造函数,这将实现您想要的结果:
var user = new User(req.body.user); // declares user and assigns a new User model with req.body.user as the initial value
user.save(function(err){
...
});