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