Как реализовать разбиение на страницы в методе GET, используя экспресс? - PullRequest
0 голосов
/ 08 июля 2019

Меня интересовало, как я могу реализовать систему разбиения на страницы в методе GET, но я не знаю, как это сделать.

Любая помощь будет оценена.

В следующемСхема JSON Я хочу, чтобы вы показывали мне информацию, относящуюся к этой странице, например: фактическая страница, следующая страница, общая страница и т. д. *

Я хочу обратиться к странице, используя & page = 1 в URL

Json

{
  "animes": [
    {
      "title": "",
      "id": "",
      "poster": "",
      "type": "",
      "synopsis": "",
      "state": ""
    },
   ]
}

Маршрутизатор

import * as scraper from './scraper';
import * as express from 'express';
const router = express.Router();

router.get('/latest', (req: express.Request, res: express.Response) => {
  scraper.lastAnimesAdded()
    .then(animes => {
      res.status(200).json({
        animes
      });
    }).catch((err) =>{
      console.log(err)
    });
});

Paginator

export const paginator = (items, page, per_page) => {
  var page = page || 1,
  per_page = per_page || 10,
  offset = (page - 1) * per_page,

  paginatedItems = items.slice(offset).slice(0, per_page),
  total_pages = Math.ceil(items.length / per_page),

  paginContent = {
    page: page,
    per_page: per_page,
    pre_page: page - 1 ? page - 1 : null,
    next_page: (total_pages > page) ? page + 1 : null,
    total: items.length,
    total_pages: total_pages,
    data: paginatedItems
  };
  console.log("Paginate Item: ", paginatedItems);
  console.log("Pagin Content: ", paginContent);
  const total = paginContent.total;
  return paginContent.data;
};
...