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