pagination in nodejs and mongodb
xxxxxxxxxx
// app.js
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const cors = require('cors');
const app = express();
const User = require('./models/User');
app.use(bodyParser.json());
app.use(cors());
mongoose.connect('mongodb://localhost/myDatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to database');
})
.catch(() => {
console.log('Connection failed');
});
app.get('/users', (req, res) => {
const pageSize = 10; // Number of items per page
const currentPage = req.query.page || 1; // Current page number, default to 1
User.find()
.skip((pageSize * currentPage) - pageSize) // Skip items based on page number
.limit(pageSize) // Limit items to page size
.then(users => {
res.status(200).json({
message: 'Users fetched successfully',
users: users
});
})
.catch(error => {
res.status(500).json({
message: 'Fetching users failed',
error: error
});
});
});
module.exports = app;