¿Cómo hacer la paginación en Node.js usando ID de clasificación?

La paginación en NodeJS se define como agregar los números para identificar el número secuencial de las páginas. En la paginación, solíamos saltar y limitar para reducir el tamaño de los datos en la base de datos cuando son muy grandes en número. En este artículo, haremos la paginación en NodeJS usando ID de clasificación.

Enfoque: Ordenar en NodeJS ayuda a ordenar el resultado en orden ascendente o descendente. Usamos el método sort() en el que pasamos un parámetro que da como resultado un orden ascendente o descendente. Utilice el valor -1 en el objeto de ordenación para ordenar de forma descendente y 1 para ordenar el objeto en orden ascendente.

Instalación del módulo: Puede instalar el módulo requerido usando el siguiente comando. 

npm install mongoose 
npm install express 
npm install bcryptjs 
npm install body-parser

Estructura del proyecto: Se verá así.

Base de datos MongoDB: a continuación se muestran los datos de muestra almacenados en su base de datos para este ejemplo.

Método 1: Ordenar en orden ascendente usando ID.

user.js

var mongoose = require("mongoose");
  
var userSchema = new mongoose.Schema({
    username:String,
    password:String
});
  
module.exports = mongoose.model("User",userSchema);

app.js

var express = require('express'),
    Mongoose = require('mongoose'),
    Bcrypt = require('bcryptjs'),
    bodyParser = require('body-parser'),
    jsonParser = bodyParser.json(),
    User = require('./user')
  
const app = express();
  
const db = `mongodb+srv://pallavi:pallavi123@
cluster0.k0sop.mongodb.net/user?retryWrites=
true&w=majority`
  
Mongoose.connect(db, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true
}).then(() => console.log('MongoDB Connected....'))
  
// Handling GET /send Request
app.get("/send", async (req, res, next) => {
  
    try {
        let { page, size, sort } = req.query;
  
        // If the page is not applied in query.
        if (!page) {
  
            // Make the Default value one.
            page = 1;
        }
  
        if (!size) {
            size = 10;
        }
  
        //  We have to make it integer because
        // query parameter passed is string
        const limit = parseInt(size);
  
        // We pass 1 for sorting data in 
        // ascending order using ids
        const user = await User.find().sort(
            { votes: 1, _id: 1 }).limit(limit)
        res.send({
            page,
            size,
            Info: user,
        });
    }
    catch (error) {
        res.sendStatus(500);
    }
});
  
// Handling POST /send Request
app.post('/send', jsonParser, (req, res) => {
  
    req.body.password = 
        Bcrypt.hashSync(req.body.password, 10);
    var newUser = new User({
        username: req.body.username,
        password: req.body.password,
  
    })
  
    newUser.save()
        .then(result => {
            console.log(result);
        });
})
  
// Server setup
app.listen(3000, function () {
    console.log("Express Started on Port 3000");
});

.js

node app.js

Salida: ahora abra su navegador y vaya a http://localhost:3000/send?sort , verá la siguiente salida:

Método 2: Ordenar en orden descendente usando ID

user.js

var mongoose = require("mongoose");
  
var userSchema = new mongoose.Schema({
    username:String,
    password:String
});
  
module.exports = mongoose.model("User", userSchema);

app.js

var express = require('express'),
    Mongoose = require('mongoose'),
    Bcrypt = require('bcryptjs'),
    bodyParser = require('body-parser'),
    jsonParser = bodyParser.json(),
    User = require('./user')
  
const app = express();
  
const db = `mongodb+srv://pallavi:pallavi123
@cluster0.k0sop.mongodb.net/user?
retryWrites=true&w=majority`
  
Mongoose.connect(db, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true
}).then(() => console.log('MongoDB Connected....'))
  
// Handling GET /send Request
app.get("/send", async (req, res, next) => {
    try {
        let { page, size, sort } = req.query;
  
        // If the page is not applied in query
        if (!page) {
  
            // Make the Default value one
            page = 1;
        }
  
        if (!size) {
            size = 10;
        }
  
        //  We have to make it integer because
        // the query parameter passed is string
        const limit = parseInt(size);
  
        // We pass 1 for sorting data in 
        // descending order using ids
        const user = await User.find().sort(
            { votes: 1, _id: -1 }).limit(limit)
  
        res.send({
            page,
            size,
            Info: user,
        });
    }
    catch (error) {
        res.sendStatus(500);
    }
});
  
// Handling POST /send Request
app.post('/send', jsonParser, (req, res) => {
  
    req.body.password = 
        Bcrypt.hashSync(req.body.password, 10);
          
    var newUser = new User({
        username: req.body.username,
        password: req.body.password,
  
    })
  
    newUser.
        save()
        .then(result => {
            console.log(result);
  
        });
})
  
// Server setup
app.listen(3000, function () {
    console.log("Express Started on Port 3000");
});

.js

node app.js

Salida: ahora abra su navegador y vaya a http://localhost:3000/send?sort , verá la siguiente salida:

Publicación traducida automáticamente

Artículo escrito por _sh_pallavi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *