Tengo un método que ayuda a responder a las solicitudes. Su firma es la siguiente:
function render(req, res, data, kind, route)
Está siendo llamado docenas de veces con diferentes parámetros. Me gustaría tener un código más limpio donde llamaría
render(data, kind, route) sabiendo que req y res siempre están ahí en el contexto cuando se llama.
Como el seguiente
router.get('/', async function (req, res, next) { // some logic // render({}, 'kind', 'route') instead of render(req, res, {}, 'kind', 'route')Siguiendo el consejo de @deceze. Terminé usando un middleware que adjunta un cierre como el siguiente
const makeRenderer = (req, res, next) => { res.locals.renderer = (data, kind, route) => renderer(req, res, data, kind, route) next() } router.get('/', makeRenderer, async function (req, res, next) { const listings = await mongoQueries.getDocumentsSince( 20, '', req.body.pagination) const { page, perPage } = req.body.pagination const data = { listings: listings.documents, addressPoints: [], current: page, pages: Math.ceil(listings.count / perPage) } res.locals.renderer(data, 'listings', 'listings') })