最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

渲染时未加载Nodejs页面

运维笔记admin14浏览0评论

渲染时未加载Nodejs页面

渲染时未加载Nodejs页面

我正在使用Nodejs和Mongoose。当我渲染页面时,什么也没有发生,页面只是试图加载。当我写到控制台时,我可以查看集合(Kp)中的所有条目。关于我的代码有什么问题,请提供帮助。

router.get('/list', (req, res) => {
    const arrayT = [];
    Kp.find({})
        .then(element => {
            arrayT.forEach(function (element) {
                arrayT.push({
                    summary: element.summary,
                    detailDesc: element.detailDesc
                });
                res.render('list', { arrayT });
            })

        })
        .catch(err => console.log(err));
});
回答如下:

您的arrayT.forEach不会遍历任何内容,因为arrayT为空,并且因为它不会遍历任何内容,因此从未遇到过res.render()代码行。您可以使用console.log();

证明这一点

我对您的建议是利用异步等待并避免承诺,因为它们可能会导致嵌套代码(如回调)。

首选代码:

router.get('/list', async (req, res) => {
 try {
const arrayT = [];
const listOfKPs = await Kp.find({})
listOfKPs.forEach( ele => {
 arrayT.push({
    summary: element.summary,
    detailDesc: element.detailDesc
   });
  });
  return res.render('list', { arrayT });
 }
 catch(err) {
   console.log(err);
   return res.render('list', { [] }); // render empty list
 }
}); 

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论