sequelize的findAll如何用?

sequelize传了一个options进去
userTable.findAll({where: {id:myId}})

如果myId传了值 会查出对应的数据

但是如果传了空 为什么会查出所有的列表,怎么样才能查出空集呢?

阅读 4.8k
2 个回答

传空不就相当于没 where 条件么,可不就返回所有结果了么……

你可以给 myId 强行赋一个数据库不会存在的值,比如 0 啥的, { where: { id: myId || 0 } }


补充回答:

我只是给个侵入性最小的方案而已,基本没啥改动、还能保留了返回结果的强类型。

如果从工程角度出发的话确实 @糟老头 是对的,应该做一层封装。

@勇敢的少年

我不认为 @然后去远足 的建议是好的,既然是空,为什么还需要去查询?

我的建议是 在执行数据库操作之前,判断id是否有,没有就直接返回空,而不是去搞一个不存在的id,再去数据库查询一遍

这不是有点 二嘛


如果你涉及到,异步同步不好处理的情况,
就需要把 封装下,把同步也封装到异步里面去,这样外部的调用就透明了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题