Sequelize model plugin for add paginate method
npm i sequelize-paginate
// model.js
const sequelizePaginate = require('sequelize-paginate')
module.exports = (sequelize, DataTypes) => {
const MyModel = sequelize.define(
'MyModel',
{
name: { type: DataTypes.STRING(255) }
}
)
sequelizePaginate.paginate(MyModel)
return MyModel
}
// controller.js
const { Op } = db.sequelize
// Default page = 1 and paginate = 25
const { docs, pages, total } = await db.MyModel.paginate()
// Or with extra options
const options = {
attributes: ['id', 'name'],
page: 1, // Default 1
paginate: 25, // Default 25
order: [['name', 'DESC']],
where: { name: { [Op.like]: `%elliot%` } }
}
const { docs, pages, total } = await db.MyModel.paginate(options)
NOTE: If options include limit or offset are ignored.