L’impaginazione in Node.js può essere implementata utilizzando molte librerie di terze parti, o può essere definita manualmente. Ecco un esempio su come implementare l’impaginazione manualmente:
```
let page = req.query.page; // otteniamo il numero della pagina dal query param
let limit = req.query.limit; // otteniamo il limite degli elementi per pagina dal query param
let startIndex = (page – 1) * limit; // calcoliamo l’indice di inizio
let endIndex = page * limit; // calcoliamo l’indice di fine
// supponiamo di avere un array “items” che contiene tutti gli elementi da impaginare
let items = […];
let paginatedItems = items.slice(startIndex, endIndex); // otteniamo gli elementi della pagina
res.send(paginatedItems);
```
Se stai lavorando con MongoDB, puoi utilizzare metodi come `skip` e `limit` per implementare l’impaginazione:
```
let page = parseInt(req.query.page);
let limit = parseInt(req.query.limit);
YourModel.find()
.skip((page – 1) * limit)
.limit(limit)
.exec((err, items) => {
if (err) {
res.send(err);
} else {
res.send(items);
}
});
```
Altrimenti, se preferisci utilizzare una libreria, esistono diverse librerie di Node.js che possono essere utilizzate. Quella che scelgo spesso è `mongoose-paginate-v2`, un plugin per Mongoose che aggiunge funzionalità di impaginazione ai modelli.
Ecco un esempio di come utilizzarla:
```
// dopo aver installato la libreria, devi attivarla sul tuo modello
YourModel.plugin(require(‘mongoose-paginate-v2’));
// poi puoi utilizzare il metodo paginate
YourModel.paginate({}, { page: req.query.page, limit: req.query.limit })
.then(result => {
res.send(result);
})
.catch(err => {
res.send(err);
});
```