续集:如果param不为null,则基于param进行findAll;如果param为null,则基于findAll

时间:2019-08-26 21:45:47

标签: node.js sequelize.js

我正在尝试使用 Express 应用程序中的 Sequelize 来获取数据,并尝试使用 MSSQL 来获取数据库。这是我的代码:

getInstitution: function (req, res) {
    var type = req.query.type,
            limit = parseInt(req.query.limit),
            offset = parseInt(req.query.offset);

    Students.findAll({
        limit: limit,
        offset: offset,
        order: [['createdAt', 'DESC']],
        where: {
            gender: type
        }
    })
}

描述: 类型=>(1是男性,2是女性)。

如果type不为空,则可以获取学生,然后根据type获取学生,但是如果type为null,则如何获取所有学生(男女) null或不包含任何值?

我认为如果我先进行检查,如果type不为null,则可以调用另一个基于类型的函数,否则调用另一个“查找全部”的函数。

还有没有其他更好的方法可以做到这一点呢?

谢谢

1 个答案:

答案 0 :(得分:1)

仅在何处应用条件式呢?

getInstitution: function (req, res) {
  var type = req.query.type,
      limit = parseInt(req.query.limit),
      offset = parseInt(req.query.offset);

   Students.findAll({
    limit: limit,
    offset: offset,
    order: [['createdAt', 'DESC']],
    where: type ? { gender: type } : {}  // I think {} or null will work.
  })
}