User.save 到 DB(使用 mongoose)不是一个函数
Posted
技术标签:
【中文标题】User.save 到 DB(使用 mongoose)不是一个函数【英文标题】:User.save to DB (use mongoose) is not a function 【发布时间】:2017-10-13 08:13:04 【问题描述】: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 发送数据?
【问题讨论】:
【参考方案1】:您通过分配vkUser = access_token: params.access_token
来覆盖vkUser
。 save
函数因此丢失。
改成:
vkUser.access_token = params.access_token
【讨论】:
谢谢,这很有帮助。给localStorage不发送数据,为什么? 我不确定节点中的localStorage
。这不是浏览器的事情吗?
需要将数据从节点发送到localStorage,用于react.js(react 将获取此数据进行验证)
哦,我明白了。我不太了解反应 :) 我建议您用适当的标题问另一个与此特别相关的问题。我相信它会让某人帮助你。以上是关于User.save 到 DB(使用 mongoose)不是一个函数的主要内容,如果未能解决你的问题,请参考以下文章
django 中 User.objects.create_user() vs User.objects.create() vs User().save() 的区别