UserModelVk.findOne({vkontakteId: profile.id}, function(err, vkUser){
if(err){ return done(err) }
if(!vkUser){
const user = new UserModelVk({
vkontakteId: profile.id,
name: profile.displayName,
access_token: params.access_token
})
user.save(function(err) {
if (err){ log.error(err) }
localStorage.setItem('username', user.vkontakteId);
localStorage.setItem('key', user.access_token)
return done(err, user);
});
} else {
vkUser = { access_token: params.access_token }
vkUser.save(function(err) {
if (err){ log.error(err) }
localStorage.setItem('key', vkUser.access_token)
return done(err, vkUser);
});
localStorage.setItem('username', vkUser.vkontakteId);
return done(err, vkUser);
}
})
在这里,我检查用户是否在我的数据库中。如果不是:注册用户(并向他发送他的令牌),如果有:更新令牌(并向他发送他更新的令牌)。
为什么“.save不是函数”?
P.S:如何正确地将数据发送到用户localStorage?
答案 0 :(得分:1)
您通过分配vkUser
来覆盖vkUser = { access_token: params.access_token }
。因此save
函数丢失了。
将其更改为:
vkUser.access_token = params.access_token