sequelize传了一个options进去userTable.findAll({where:{id:myId}})如果myId传了值会查出对应的数据但是如果传了空为什么会查出所有的列表,怎么样才能查出空集呢?
2 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
传空不就相当于没where条件么,可不就返回所有结果了么……
你可以给myId强行赋一个数据库不会存在的值,比如0啥的,{where:{id:myId||0}}补充回答:我只是给个侵入性最小的方案而已,基本没啥改动、还能保留了返回结果的强类型。如果从工程角度出发的话确实@糟老头是对的,应该做一层封装。

慕森卡
TA贡献1806条经验 获得超8个赞
既然是空,为什么还需要去查询?我的建议是在执行数据库操作之前,判断id是否有,没有就直接返回空,而不是去搞一个不存在的id,再去数据库查询一遍这不是有点二嘛如果你涉及到,异步同步不好处理的情况,就需要把封装下,把同步也封装到异步里面去,这样外部的调用就透明了
添加回答
举报
0/150
提交
取消