首页 > 解决方案 > 如果查询字符串中的字段为空节点并使用 Postgres 续集,如何获取所有数据

问题描述

我正在用 Node 学习 Sequelize,我有一个问题..

我有以下带参数的 URL:

http://localhost:9000/api/get/Joao/ ""

第一个参数是name,第二个参数manager分别是Joao""(我认为是空的)..

我想要的是:如果第二个参数是empty我想获取所有具有nameJoao 的数据..

已经undefined, null输入了Sequelize但不工作的代码..

有人可以帮助我吗?

我的代码Sequelize

getCubikMembers(req, res) {
  return Cubik
    .findAll({
      where: {
        name: req.params.name,
        manager: null // what i put here to happen what i want?
      }
    })
    .then(success => res.status(201).send(success))
    .catch(err => res.status(err).send(err))
}

我的 API:

app.get('/api/get/:name/:manager',CubikersController.getCubikMembers);

标签: javascriptnode.jssequelize.js

解决方案


您可以使用或声明。我认为可能的解决方案如下所示。我没有测试过代码。

getCubikMembers(req, res) {
  const manager = req.params.manager;
  return Cubik
    .findAll({
      where: {
        [Op.or]: [
          {manager: manager ? manager : null },
          {name: req.params.name }
        ]
      }
    })
    .then(success => res.status(201).send(success))
    .catch(err => res.status(err).send(err))
}

这是 sequelizejs 中运算符的文档。

http://docs.sequelizejs.com/manual/tutorial/models-usage.html#complex-filtering-or-not-queries


推荐阅读