我想知道是否可以使用findOne/findOrcreate等而不是行sql query
来制作"动态条件"我将其与GraphQl一起使用,并且参数可以是GraphQl中的选项,因此我要做的是:
如果我的ID和名称为参数:
user.findOrCreate({
where: {
id: args.id,
name : args.name,
}
})
如果我有ID,名称和电子邮件:
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 )