gpt4 book ai didi

database - Sequelize中如何使用findOrCreate

转载 作者:太空狗 更新时间:2023-10-30 01:44:44 29 4
gpt4 key购买 nike

我是 Sequelize 初学者。我想通过 Twitter 或 Facebook 进行 oAuth 身份验证,并希望将用户信息保存在数据库中。

但如果在多个站点进行OAuth认证,就会存在数据库中注册的userid等信息会与其他站点发生冲突的问题。

为了避免这种情况,我想做一个过程,仅当指定的 userid 不存在于数据库中时才更新数据库。

我知道我们可以使用 Sequelize 的 findOrCreate 来完成它,但我不知道如何使用 findOrCreate。我知道如何使用 upsert 并且我想使用 findOrCreate 就像下面对 upsert 的描述一样。但是,我们想像这样执行条件分支:

if (userid!= "○○○"&& username!= "○○○").

User.upsert({
userid: profile.id,
username: profile.username,
accountid: c + 1,
}).then(() => {
done(null, profile);
});

我该怎么办?

最佳答案

// remember to use a transaction as you are not sure whether the user is
// already present in DB or not (and you might end up creating the user -
// a write operation on DB)

models.sequelize.transaction(function(t) {
return models.users.findOrCreate({
where: {
userId: profile.userId,
name: profile.name
},
transaction: t
})
.spread(function(userResult, created){
// userResult is the user instance

if (created) {
// created will be true if a new user was created
}
});
});

关于database - Sequelize中如何使用findOrCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403084/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com