两种方法在mongoose中保存数据的区别

时间:2017-10-26 20:06:23

标签: node.js mongodb express mongoose

嘿,我有一个简单的问题,因为我使用了一种方法直到今天,你能解释一下这两种方法在猫鼬之间有什么区别吗?我曾经认为这些是相同的,但不是......第一种方法得到错误,第二种工作正常。请解释我的差异。 (在这两种方法中,我在expressJS中使用app.put()

1)

User.findOne({ username: req.decoded.username }, function(err, user){
    //some code e.g. change password
    user.password = req.body.newPass
    user.save(function(err){
       res.json({ success: true })
    })
});

2)

User.findOne({ username: req.decoded.username }).select('email username password').exec(function(err, user){
    //some code e.g. change password
    user.password = req.body.newPass
    user.save(function(err){
       res.json({ success: true })
    })
});

1 个答案:

答案 0 :(得分:0)

我认为你不能将回调函数放在findOne中,因此你会在这种方法中出错

User.findOne({ username: req.decoded.username }, function(err, user){
//some code e.g. change password
user.password = req.body.newPass
user.save(function(err){
   res.json({ success: true })
})
});