gpt4 book ai didi

node.js - 使用 sequelize 在 nodejs 中创建 "dynamic query"?

转载 作者:行者123 更新时间:2023-12-03 22:37:40 24 4
gpt4 key购买 nike

我想知道是否可以使用 findOne/findOrCreate 等而不是行 SQL 查询通过 sequelize 来创建“动态条件”

我将它与 graphQL 一起使用,并且参数在 graphQL 中可能是可选的,所以我想做的是:

如果我有 id 和 name 作为参数:

user.findOrCreate({
where: {
id: args.id,
name : args.name,
}
})

如果我有身份证、姓名和电子邮件:
user.findOrCreate({
where: {
id: args.id,
name : args.name,
email: args.email,
}
})

因此可以在 findOrCreate 中使用一个参数来检查是否存在某些内容(此处为 args.email),如果不存在,则不将其包含在查询中?

最佳答案

您可以创建函数并导入该函数:

export const findOrCreate = async function (query) {
try {
const user = await user.findOrCreate(query);
return user;
} catch (e) {
throw Error('Error occur while finding or creating the records’);
}
};

在任何需要导入该函数并使用所需参数调用的地方
const query = {
where: { // we search for this user
id: args.id,
name : args.name,
email: args.email,
},
defaults: {
job: 'Technical Lead JavaScript'
} // if it doesn't exist, we create it with this additional data
}

await findOrCreate(query )

关于node.js - 使用 sequelize 在 nodejs 中创建 "dynamic query"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56734981/

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