Nodejs es un entorno de tiempo de ejecución multiplataforma y de código abierto para ejecutar código JavaScript fuera del navegador. Es ampliamente utilizado en el desarrollo de API y microservicios desde pequeñas hasta grandes empresas. Es una gran herramienta ya que permite a los desarrolladores usar JavaScript tanto en el servidor como en el cliente.
¿Qué es la paginación?
La paginación es un método muy útil. Esto permite al cliente obtener datos en páginas. Esto se logra mediante el uso de opciones de omisión y límite, lo que brinda a los clientes un control total de la página (datos) que están recuperando.
Prerrequisitos: Conocimientos básicos de Nodejs y Mongodb.
¿Cuándo usar Paginación?
Como lo describe su declaración, se debe usar Paginación:
- Cuándo los clientes deberían tener el control de los datos que están recuperando.
- Mejora de la experiencia del usuario (UX) y mejor navegación.
Creando un proyecto
Paso 1: Cree una nueva carpeta para un proyecto usando el siguiente comando:
mkdir pagination
Paso 2: Navega a nuestra carpeta usando el siguiente comando:
cd pagination
Paso 3: Inicialice npm usando el siguiente comando y archivo de servidor:
npm init -y touch index.js
Paso 4: Instale los paquetes requeridos usando el siguiente comando:
npm i express mongoose
Estructura del proyecto: se verá así
Ejemplo 1: sin usar la paginación
index.js
// Requiring module const express = require('express'); const mongoose = require('mongoose'); const port = 3000; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); // Database URL const MONGODB_URL = 'mongodb://127.0.0.1/pagination'; // Connecting Database through mongoose(ORM For Mongodb) mongoose .connect(MONGODB_URL, { useCreateIndex: true, useFindAndModify: false, useUnifiedTopology: true, useNewUrlParser: true, }) .then(() => { console.log('Database connected'); }) .catch((err) => { console.log('Error in connecting database'); }); // Creating Schema for Posts, then it will // be used in creating Model const PostSchema = new mongoose.Schema({ name: String, date: { type: Date, default: Date.now(), }, }); const postModel = new mongoose.model('PostModel', PostSchema); // For creating Posts app.post('/', async (req, res) => { const post = new postModel(req.body); await post.save(); res.status(201).send('Successfully created'); }); // For Fetching Post app.get('/', async (req, res) => { try { const posts = await postModel.find(); res.status(200).send(posts); } catch (e) { console.log(e); } }); // Starting the server app.listen(port, () => { console.log(`Started at ${port}`); });
Ejecute el servidor usando el siguiente comando:
node index.js
Inserción en la base de datos: los datos se insertan con la ayuda de Postman a través del siguiente método:
Salida: sin paginación
Como se puede ver en el ejemplo anterior, sin paginación, se obtendrán todos los documentos. Para tener más claro el uso y la necesidad de Paginación. Piense en este caso cuando hay miles de documentos en lugar de solo 4.
Ejemplo 2: con el uso de paginación
Para omitir y limitar la paginación, los parámetros se usarán usando el método de límite y omisión junto con find.
index.js
// Requiring module const express = require('express'); const mongoose = require('mongoose'); const port = 3000; const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: false })); // Database URL const MONGODB_URL = 'mongodb://127.0.0.1/pagination'; // Connecting Database through mongoose(ORM For Mongodb) mongoose .connect(MONGODB_URL, { useCreateIndex: true, useFindAndModify: false, useUnifiedTopology: true, useNewUrlParser: true, }) .then(() => { console.log('Database connected'); }) .catch((err) => { console.log('Error in connecting database'); }); // Creating Schema for Posts, then it will // be used in creating Model const PostSchema = new mongoose.Schema({ name: String, date: { type: Date, default: Date.now(), }, }); const postModel = new mongoose.model('PostModel', PostSchema); // For creating Posts app.post('/', async (req, res) => { const post = new postModel(req.body); await post.save(); res.status(201).send('Successfully created'); }); // For Fetching Post app.get('/', async (req, res) => { try { // Adding Pagination const limitValue = req.query.limit || 2; const skipValue = req.query.skip || 0; const posts = await postModel.find() .limit(limitValue).skip(skipValue); res.status(200).send(posts); } catch (e) { console.log(e); } }); // Starting the server app.listen(port, () => { console.log(`Started at ${port}`); });
Ejecute el servidor usando el siguiente comando:
node index.js
Salida: con paginación
Publicación traducida automáticamente
Artículo escrito por namancourses y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA