A rengeteg kimenet egyetlen oldalon való megjelenítése fejfájást okoz, igaz? Ráadásul az összes adat egyszeri betöltése lelassítja a teljesítményt…
Nos, az oldalszámozás mindig a legjobb megoldás… És a mongoose-paginate-v2-vel ez nagyon egyszerű
Egyszerűen kezdje a modul telepítésével, majd használja a sémában.
const mongoose = require('mongoose'); const mongoosePaginate = require('mongoose-paginate-v2'); const mySchema = new mongoose.Schema({ /* your schema definition */ }); mySchema.plugin(mongoosePaginate); var myModel = mongoose.model('log', mySchema);
Most már beillesztheti a .paginate({}, options)-ot az expressz kódjába
app.get('/logs', (req, res) => { const {page} = req.query; const options = { page: parseInt(page, 10) || 1, limit: 15 } logs.paginate({}, options).then((results, err) => { if(!err){ //Pass the totalpages number to pug along with the result res.render('audit-log', {testObj: results.docs, page_count: results.totalPages}) } }) })
Az opciók paraméterét igény szerint módosíthatja
Most a mopszfájlban egyszerűen adja meg az alábbi kódot
.container ul.pagination while n < page_count+1 li a(href="?page="+n)=n++
Így kezelheti a dinamikus oldalszámozást webhelyén.