将对象映射到mongoose模型

时间:2015-04-23 14:16:01

标签: node.js express mongoose

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;
...

1 个答案:

答案 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){
  ...
});