用sequelize在nodejs中创建“动态查询”?

时间:2019-06-24 10:48:23

标签: node.js sequelize.js

我想知道是否有可能使用findOne / findOrCreate等代替行SQL查询来通过序列化来创建“动态条件”

我将它与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),如果不存在,则不将其包含在查询中吗?

1 个答案:

答案 0 :(得分:0)

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

select date("2019-05-06 00:00:00" )

无论何时需要导入该函数并使用所需参数进行调用

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’);
    }
};