gpt4 book ai didi

node.js - Sequelize findOrCreate 回退以捕获是否找到数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:12 26 4
gpt4 key购买 nike

FindOrCreate 假定根据您提供的参数查找创建

所以我想知道为什么当找到data(用户)时它会回退到catch promise ,而它应该只返回data 是在 .spread 函数中找到的,而不是尝试插入已经存在的数据?!。

正如您在下面看到的,如果找到或创建了一个用户,无论如何它都会运行相同的功能。该函数所做的就是为特定用户创建一个auth token。但由于某种原因,它直接进入了 catch promise !?

User.findOrCreate({
where: {
userId: details.userId,
},
defaults: {
name: details.name,
email: details.email,
},
attributes: ['userId', 'name', 'email', 'profilePic'],
}).spread(function (new_user, created) {
console.log("\n\nNew user was created T or F: ", created);

// Create the token and then pass it back to our callback along with the user details
user.createTokenForUser(new_user.userId, function(token) {
cb(token, new_user);
});
}).catch(function (err) {
// For some reason I'm running...?!??!?!?!?!
console.log("\n\n", err);
});

最佳答案

您是否尝试删除 where 语句中的尾随逗号?它只是遇到了一个错误,看起来像是罪魁祸首:)

where: {
userId: details.userId,
}

where: {
userId: details.userId
}

关于node.js - Sequelize findOrCreate 回退以捕获是否找到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36212942/

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