كيف تنفذ Pagination في Node.js دون تعقيد

هل تعاني من بطء التطبيق؟ Pagination هو الحل!
كيف تقسم البيانات إلى صفحات في Node.js بسهولة؟

شرح عمل Pagination في Node.js للبيانات بشكل مبسط

يُعرف Pagination بتقنية برمجية تُستخدم لعرض كميات كبيرة من البيانات على صفحات متعددة، مما يُسهل على المستخدم تصفحها وفهمها , يمكن تقسيم رسائل البريد الإلكتروني للمستخدم إلى صفحات، حيث تُعرض 5 رسائل كحد أقصى في كل صفحة , يمكن عرض بيانات كل موظف في صفحة خاصة، مما يُسهل على المستخدم الوصول إلى المعلومات الخاصة بكل موظف.

عند التعامل مع كميات كبيرة من البيانات في تطبيقات الويب، من الضروري تقسيم البيانات إلى صفحات (Pagination) لتحسين الأداء وتجربة المستخدم. في هذا المقال، سنشرح كيفية تنفيذ Pagination في Node.js بشكل مبسط وسهل الفهم.


ما هو Pagination؟

Pagination هو عملية تقسيم البيانات إلى صفحات صغيرة لعرضها بشكل تدريجي بدلاً من تحميل جميع البيانات مرة واحدة. هذا الأسلوب يُحسن أداء التطبيق ويجعل تجربة المستخدم أكثر سلاسة (يُعد Pagination تقنية أساسية لعرض البيانات على صفحات متعددة)


لماذا نستخدم Pagination؟

  1. تحسين الأداء: تقليل كمية البيانات التي يتم جلبها من قاعدة البيانات.
  2. تحسين تجربة المستخدم: عرض البيانات بشكل منظم وسهل التصفح.
  3. تقليل استخدام الذاكرة: تجنب تحميل كميات كبيرة من البيانات في الذاكرة.


فوائد عمل Pagination للبيانات

  • تحسين تجربة المستخدم:عرض البيانات على صفحات متعددة يسهل على المستخدمين تصفحها. يقلل Pagination من وقت تحميل الصفحة، مما يجعل تجربة المستخدم أكثر سلاسة.
  • تحسين الأداء:يقلل Pagination من عبء العمل على الخادم عن طريق تحميل البيانات على دفعات.
  • قابلية التطوير: يجعل Pagination من السهل إضافة المزيد من البيانات إلى واجهة المستخدم دون الحاجة إلى إعادة تصميمها.


استخدام mongoose

سوف نقوم بعمل متغير من نوع options ونقوم بداخله بتنفيذ العملية وارساله في عملية طلب البيانات من السيرفر بشكل مباشر

const mongoose = require('mongoose');

const schema = new mongoose.Schema({
  name: String,
  age: Number,
});

const Model = mongoose.model('Model', schema);

app.get('/products', (req, res) => {
  const { page, perPage } = req.query;

  const options = {
    limit: perPage,
    skip: (page - 1) * perPage,
  };

  Model.find({}, options, (err, docs) => {
    if (err) {
      return res.status(500).send(err);
    }

    res.json(docs);
  });
});


استخدام middleware

في هذا الجزء سوف نقوم بعرض جميع البيانات في شكل limits حتى نقوم بتنفيذ الكود بشكل كامل على اي عملية request تتم في السيرفر
const express = require('express');

const app = express();

app.use((req, res, next) => {
  const { page, perPage } = req.query;

  req.pagination = {
    page: page || 1,
    perPage: perPage || 10,
  };

  next();
});

app.get('/products', (req, res) => {
  const { page, perPage } = req.pagination;

  const options = {
    limit: perPage,
    skip: (page - 1) * perPage,
  };

  Model.find({}, options, (err, docs) => {
    if (err) {
      return res.status(500).send(err);
    }

    res.json(docs);
  });
});

Request 

سوف نقوم بالحصول على عدد العناصر التي نريد ان نظهرها من المستخدم وايضا الصفحه التي يرغب بالحصول على المعلومات منها من خلال الاكواد التاليه .

const query = req.query;
const limits = query.limits || 10;
const page = query.page || 1;
const skip = (page-1) * limits;

const users = await User.find().limit(limits).skip(skip)
إرسال Query في API من خلال Postman

https://api.example.com/users?page=1&limits=5

في الشكل السابق قمنا بعرض الصفحه الاولى وكل صفحة سوف تحتوى على 5 عناصر فقط


أمثلة على استخدام Pagination في مختلف التخصصات

  • يمكن استخدام Pagination لعرض المنتجات في تطبيق الجوال على صفحات متعددة.
  • يمكن استخدام Pagination لعرض المستخدمين على منصة البرمجة على صفحات متعددة.
  • يمكن استخدام Pagination لعرض البيانات في ملفات JSON أو CSV على صفحات متعددة.
  • يمكن استخدام Pagination لتعليم الطلاب كيفية استخدام وظائف JavaScript لعرض البيانات على صفحات متعددة.

Pagination هو أسلوب فعال لإدارة وعرض كميات كبيرة من البيانات في تطبيقات الويب. من خلال تنفيذ Pagination في Node.js، يمكنك تحسين أداء التطبيق وتجربة المستخدم. باستخدام الأدوات البسيطة مثل Express و Mongoose، يمكنك بسهولة تطبيق Pagination وجعل تطبيقك أكثر كفاءة.

تعليقات