将设置的限制限制为最大行数

时间:2018-10-15 08:51:05

标签: node.js sequelize.js

我将从前端向 Sequelize

发送2种类型的参数

第一个参数: {}

第二个参数: {page: '1', start: '0', limit: '30' }

我的Sequelize查询:

myTable.findAndCountAll({
    .....
    offset: (req.query.start) ? parseInt(req.query.start) : 0,
    limit: (req.query.limit) ? parseInt(req.query.limit) : 30
.........

默认情况下,对于第一个参数,将限制设置为30

对于第二个参数,将 limit 设置为参数发送。

我的问题是,我需要为第一个参数设置默认限制以返回所有行。

试图将null设置为默认值,例如limit: (req.query.limit) ? parseInt(req.query.limit) : null,将默认限制设置为我不想要的 10000000000000

如果有任何特定的方法可以帮助您。

1 个答案:

答案 0 :(得分:2)

由于Sequelize没有为此提供内置功能,因此该问题的解决方案之一是:

let limits = {};
if(req.query.limit){
    limits = {
        offset: (req.query.start) ? parseInt(req.query.start) : 0,
        limit: parseInt(req.query.limit)
    }
}

myTable.findAndCountAll({
    .....
    ...limits , // <---- here three dots are ES6 syntax , so don't ignore that)
    .....
});

更多详细信息: READ