首页 > 解决方案 > 我如何在 EJS 中写这个

问题描述

我有两个集合,一个是类别,另一个是博客,同时循环出类别,我想获取此类类别在我的博客集合中的帖子数量,使用博客集合中的类别字段,我能够在此输出使用下面的代码进行控制台,但是如何在 ejs 中呈现它以在下面显示此结果?

业务 4

运动 2

宗教 1

但是我如何在 ejs 中渲染它看起来像这样

我用下面的代码在我的路线中做到了这一点

app.get('/articles/play', async (req, res) => {
    const category = await catModel.find()
    category.forEach(async cat => {
        // console.log(cat.catname)
        const countIt = await blogModel.countDocuments({category: cat.catname})
        console.log(cat.catname, countIt)
    })

})

标签: node.jsexpressejs

解决方案


形成一个 json 数组,在其中推送此数据并将此数组传递给 ejs 以盲目渲染,如下所示

 app.get('/articles/play', async (req, res) => {
        const category = await catModel.find();
        const ejsArr = [];
        for(let i = 0; i < category.length; i++) {
            const countIt = await blogModel.countDocuments({category: category[i].catname});
            ejsArr.push({name:cat.catname, count:countIt});    
        }
        console.log(ejsArr)
        res.render('article', ejsArr);    
});

推荐阅读