Sequelize 设置最大行数限制

M.A*_*pon 0 node.js sequelize.js

我从前端发送 2 种类型的参数到Sequelize

第一个参数: {}

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

我的续集查询:

myTable.findAndCountAll({
    .....
    offset: (req.query.start) ? parseInt(req.query.start) : 0,
    limit: (req.query.limit) ? parseInt(req.query.limit) : 30
.........
Run Code Online (Sandbox Code Playgroud)

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

对于第二个参数,它设置限制作为参数发送。

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

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

如果有任何具体的方法来做到这一点可能会有所帮助。

Viv*_*shi 5

由于 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)
    .....
});
Run Code Online (Sandbox Code Playgroud)

欲了解更多详细信息:阅读