【问题标题】:How do I write this in EJS我如何在 EJS 中写这个
【发布时间】:2020-09-28 21:27:28
【问题描述】:

我有两个集合,一个是类别,另一个是博客 在循环出类别时,我想使用博客集合中的类别字段获取此类类别在我的博客集合中的帖子数量 我可以使用下面的代码在控制台上显示此输出,但是如何在 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.js express ejs


【解决方案1】:

形成一个 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);    
});

【讨论】:

  • 请您分享一下我将如何在 ejs 模板中输出 ejsArr 的信息?谢谢。
  • 一旦这个 ejsArr 形成,在你的 ejs 中循环这个数组并使用 html css 来设计它,(或者简单地打印它)。 (我假设你知道 ejs 否则请参阅此 tanmaysarkar.com/array-with-ejs-template-in-nodejs
  • 我在视图中遍历 ejsArr 并显示为空,但是当我 console.log(ejsArr) 我有这个输出 [ { name: 'Business', count: 4 } ] [ { name : 'Business', count: 4 }, { name: 'Sport', count: 2 } ] [ { name: 'Business', count: 4 }, { name: 'Sport', count: 2 }, { name: '宗教',计数:1 } ]
  • 这里有问题,为什么你的数组有重复的值,你在示例代码之前有循环吗?
  • res.render('article', ejsArr); 之前的控制台日志并分享这些数据
猜你喜欢
  • 2012-07-30
  • 2016-06-23
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
相关资源
最近更新 更多