Estoy trabajando en un proyecto usando express con plantillas de bigote, estoy tratando de pasar el objeto a la plantilla usando res.locals pero no funciona,
este es el codigo
exports.menu = function(req,res){ res.locals.title = "Menu"; res.locals.class_type ="main_nav"; MenuDB.GetAvailableLunch() .then((list) => { res.locals.lunch = list; console.log('Promise Resolved'); }) .catch((err) =>{ console.log('Promise rejected', err); }) res.render('menu'); }Quiero que la lista que proviene de la función sea el objeto de almuerzo que tengo en la página del bigote, ¿alguna idea de cómo hacer esto? Sé que puedo hacerlo así
.then((list) => { res.render('menu', { 'lunch': list });pero estoy tratando de hacerlo de esta manera porque tendré otra función para devolver otras listas de la base de datos, espero que esto sea lo suficientemente claro.
Cree una cadena de promesas o una matriz de promesas independientes y solo llame a res.render() una vez que todo esté resuelto.
Por ejemplo...
exports.menu = async (req, res) => { const [lunch, another] = await Promise.all([ MenuDB.GetAvailableLunch(), anotherFunction(), ]); res.render("menu", { title: "Menu", class_type: "main_nav", lunch, another }); };