0
我正在使用passport.js,我想更新当前登录成员的配置文件并将其保存到数据库。现在我正在使用保存,但我担心这会在别人同时修改此配置文件时导致问题。相反,我想使用MongoDB的upsert功能。更新成员在猫鼬
function updateProfile(req, res) {
var user = req.user
var form = req.body
var profile = {
name: form.profileRealName,
bio: form.profileBio,
url: form.profileUrl,
location: form.profileLocation
}
user.profile = profile
logger.info(user)
user.save(function(err) {
if(err)
next(err)
else
res.redirect(302, '/settings/profile')
})
}
其实这并没有引发错误,但在数据库中的文件尚未改变。
我的问题:
什么是UPSERT我登录的用户的最佳方法是什么?
我已经重写了一下,现在它抛出的“user”没有为回调参数'(err,user)'定义。这是我的代码:http://i.imgur.com/fJeU6Ur.png – kentor
@kentor看起来像是未定义的,因为它没有在您的查询中找到用户,或者userId未定义。尝试将用户标识设置为'var userId = req.body._id',您应该传递身份标识值。或者,如果你在params中传递id,它将是'var userid = req.params.id' – mrtaz