Estoy implementando una función de controlador que necesitará pasar algunas consultas de la base de datos al motor de plantillas, específicamente necesito incluir los datos de categoría y marca de los productos para que el usuario pueda filtrar más por categoría y marca, para hacer esto Yo solo...
Esto no parece estar funcionando... probablemente la función de modelo de consulta no se está implementando correctamente y estoy recuperando el objeto de promesa al consultar las categorías
find: (req,res)=>{ Products.findAll({ where: { name: {[Op.like]: `%${req.query.search_query}%`} } order: [["createdAt", "DESC"]] }) .then((products)=>{ let catalogData = {} catalogData['products'] = products return catalogData }) .then((catalogData)=>{ let categoryIdArray = idArrayGenerator(catalogData.products, 'categoryId') let categoryObject = queryModel(Categories, categoryIdArray) catalogData['categories'] = categoryObject return catalogData }) .then((catalogData)=>{ let brandIdArray = idArrayGenerator(catalogData.products, 'brandId') let brandObject = queryModel(Brands, brandIdArray) catalogData['brands'] = brandObject return catalogData }) .then ((catalogData)=>{ res.render(path.resolve(__dirname, '../views/main/catalog'), { title: "Catalogo | Vigilancia Argentina", products: catalogData.product, categories: catalogData.subcategories, brands: catalogData.brands, })}) .catch(error => res.send(error)) function idArrayGenerator(products, property){ let Array = products.map(product => product.property) let ArraySanitized = lodash(Array).sortedUniq().sortBy() return ArraySanitized } function queryModel(Model, idArray){ return Model.findAll({ where:{ id: idArray } }) .then ((data) => {return data}) } }