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')
})
}
実際にはエラーは発生しませんでしたが、データベースのドキュメントは変更されていません。
私の質問:
私がログインしているユーザーアップサートするための最良の方法は何ですか?
これを少し書き直しました。コールバックパラメータ '(err、user)'に "user"が定義されていません。それは私のコードです:http://i.imgur.com/fJeU6Ur.png – kentor
@kentorそれはあなたのクエリでユーザーを見つけられないため、またはuserIdが定義されていないため、未定義のようです。ユーザIDを 'var userId = req.body._id'に設定すると、あなたはbodyのid値を渡すべきです。または、paramsにidを渡している場合は、 'var userid = req.params.id' – mrtaz