tengo utilidades pagination.js
exports.getPagination = function (page, size) { const limit = size ? +size : 3; const offset = page ? page * limit : 0; return { limit, offset }; }; exports.getPagingData = function (datas, page, limit) { const { count: total_items, rows: scores } = datas; const current_page = page ? +page : 0; const total_pages = Math.ceil(total_items / limit); return { total_items, scores, total_pages, current_page }; // here problem };tengo uso como estos
const { page, size, title } = req.query; const { limit, offset } = pagination.getPagination(page, size); .... .... .then( async (scores) => { const resData = pagination.getPagingData(scores, page, limit); // const resData = pagination.getPagingData(scores, page, limit); response.ok(res, "load scores data", resData);mi regreso json
{ "success": true, "message": "load scores data", "data": { "total_items": 4222, "scores": [ { "id": 3, ¿Cómo puedo nombrar scores flexibles cuando uso las utilidades en otro controlador?
por ejemplo
.then( async (events) => { const resData = pagination.getPagingData(events, page, limit); response.ok(res, "load events data", resData);entonces se esperaba mi retorno json:
{ "success": true, "message": "load events data", "data": { "total_items": 4222, "events": [ { "id": 3,Resultados actuales:
{ "success": true, "message": "load events data", "data": { "total_items": 4222, "scores": [ // here problem { "id": 3,¿Alguien tiene un truco con un archivo separado? pasando el valor como clave? nomenclatura dinámica de claves.
Podría agregar otro argumento a su función getPagingData así:
exports.getPagingData = function (datas, page, limit, dynamicKey) { const { count: total_items, rows: scores } = datas; const current_page = page ? +page : 0; const total_pages = Math.ceil(total_items / limit); return { total_items, [dynamicKey]: scores, total_pages, current_page }; // here problem };entonces puedes llamar a esta función
const resData = pagination.getPagingData(events, page, limit, "events");Algo que puede hacer para pasar el nombre del recurso a su función getPagingData . Al igual que:
exports.getPagingData = function (datas, page, limit, resourceName) { const { count: total_items, rows } = datas; const current_page = page ? +page : 0; const total_pages = Math.ceil(total_items / limit); const result = { total_items, total_pages, current_page }; /** * DO YOUR PAGINATION LOGIC SOMEWHERE HERE */ result[resourceName] = rows; return result; };Y cuando necesite llamar a la función, llámela como se muestra a continuación:
const resource_name = "events"; // or "scores", as the case may be. const resData = pagination.getPagingData(scores, page, limit, resource_name);Espero que esto responda a su pregunta.