在sequelize中使用OR语句查询

时间:2017-08-29 17:47:37

标签: javascript sql node.js sequelize.js

我有一些问题使用或声明是sequelize。 以下是我能够提出的代码:

UserExist(req, res) {
const field = req.body.username || req.body.email;
const getFieldName = field === req.body.username ? 'username' : 'email';
return User
  .findOne({ where: {
    $or: [
      {
        email: req.body.email,
        username: req.body.username
      }
    ]
  }
  })
  .then((user) => {
    if (user) {
      res.status(200).send({ message: `${getFieldName} already exist` });
    }
  })
  .catch(() => res.status(404).send({ message: '' }));

}

而不是执行OR语句,它只选择*来自用户

1 个答案:

答案 0 :(得分:5)

根据sequelize documentation

你应该在$or数组

的不同元素中给出不同的where条件

请试试这个:

$or: [
  {
    email: req.body.email
  },
  {
    username: req.body.username
  }
]