首页 > 解决方案 > 如何为nodejs正确实现分页?

问题描述

我使用 ORM sequelize 和 postgresql 数据库。我想实现分页。

使用 MongoDB 数据库,以这种方式执行分页。

module.exports.getBySprOilfieldId = async function (req, res) {
    try {
        const query = {
            where: {
                spr_oilfields_id: req.params.spr_oilfields_id
            }
        }
        const sprwellplatforms = await SprWellplatforms.findAll(query)
        .skip(+req.query.offset)
        .limit(+req.query.limit)
        res.status(200).json(sprwellplatforms)
    } catch(e) {
        errorHandler(res, e)
    }
}

但是由于我使用的是postgresql数据库,所以出现了这样的错误。

SprWellplatforms.findAll(...).skip 不是函数

SprWellplatforms.findAll(...).limit 不是函数

如何修复它们?

标签: node.jsexpresssequelize.js

解决方案


offsetlimit值应该在传递给的选项上设置,如Pagination/LimitingfindAll()的文档中所示。

const query = {
  where: {
    spr_oilfields_id: req.params.spr_oilfields_id
  },
  offset: +req.query.offset,
  limit: +req.query.limit,
};
const sprwellplatforms = await SprWellplatforms.findAll(query)

推荐阅读