【问题标题】:Sequelize set limit to max row count将限制设置为最大行数
【发布时间】:2019-03-19 15:44:55
【问题描述】:

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

第一个参数: {}

第二个参数: {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
.........

对于第一个参数,默认情况下它设置 limit 为 30

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

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

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

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

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    由于 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

    【讨论】:

    • 它在没有三个点的情况下工作。如果我不使用这三个点,将来会不会搞砸。
    • @M.A.K.Ripon ,当你有可用的限制参数时它不会工作,请检查
    • 谢谢,现在我明白了,没有错误,没有错误就给出了结果。这就是为什么我认为它会起作用,但现在我看到如果它有可用的参数,它会返回网格中的所有行。
    • 您好,我的 nodejs 服务器上出现三个点的错误。它在我的本地服务器上工作,但在线服务器出错。 ...limits^^^SyntaxError: Unexpected token ...
    • 检查你服务器上的节点js版本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多