【问题标题】:showing MongoDB document value to EJS in a loop在循环中向 EJS 显示 MongoDB 文档值
【发布时间】:2015-07-20 16:45:47
【问题描述】:

我正在开发一个节点项目。如果我问了很多愚蠢的问题,node 对我来说很新,很抱歉。

我正在尝试在我的 index.ejs 上显示我的所有主题。根文件已在控制台日志中显示它们,但我似乎无法让它们显示在视图中。

视图已经循环并且知道有 2 个主题,但是内容是空的。

这是我在 routes/index.js 中的代码

router.get('/', function(req, res, next) {

  Topic.find({}).exec(function(err, topic)
  {
    if(err){

      console.log('There ware no topics');
      return next(err)
    }
    else
  {
    console.log('Whoop whoop there are some topics');


    res.render('index', { topic: topic } );

    console.log("Logging data: " + topic);
    console.log("Loggin data title out db: " + topic.topicTitle);
    console.log("Loggin data desc out db: " + topic.topicDescription);
    console.log("Loggin data date out db: " + topic.topicDateCreated);
  }
  });

});


module.exports = router;

这是我尝试在我的views/index.ejs中展示它的方式

     <ul>
       <% for(var i = 0; i < topic.length; i++) {%>
          <li>
            <div class="post animated fadeInLeft">
               <div class="wrap-ut pull-left">
                   <div class="userinfo pull-left">
                      <div class="avatar">
                         <img src="images/avatar.jpg" alt="default avatar" />
                         <p class="moderator"> <%= topic.fbUsername %> </p>
                      </div>
                   </div>
               <div class="posttext pull-left">
                   <h2 class="topictitle"><a href="/topicdetail/{topic_id}" <%= topic.topicTitle %>  </a></h2>
           </div>
        <div class="clearfix"></div>
     </div>
     <div class="clearfix"></div>
  </div>
  </li>
  <% } %>
</ul>

【问题讨论】:

    标签: node.js mongodb loops view ejs


    【解决方案1】:

    topic 变量是一个数组,因此您需要传递索引才能获得正确的 Topic 文档。例如:

    <%= topic[i].fbUsername %>
    

    您的视图应如下所示:

         <ul>
           <% for(var i = 0; i < topic.length; i++) {%>
              <li>
                <div class="post animated fadeInLeft">
                   <div class="wrap-ut pull-left">
                       <div class="userinfo pull-left">
                          <div class="avatar">
                             <img src="images/avatar.jpg" alt="default avatar" />
                             <p class="moderator"> <%= topic[i].fbUsername %> </p>
                          </div>
                       </div>
                   <div class="posttext pull-left">
                       <h2 class="topictitle"><a href="/topicdetail/{topic_id}"> <%= topic[i].topicTitle %>  </a></h2>
               </div>
            <div class="clearfix"></div>
         </div>
         <div class="clearfix"></div>
      </div>
      </li>
      <% } %>
    </ul>
    

    更新

    你也忘了在这里关闭标签:

    --------------------------------------------------------↴
    <h2 class="topictitle"><a href="/topicdetail/{topic_id}" <%= topic[i].topicTitle %>  </a></h2>
    

    关闭标签,我可以看到标题:

    <h2 class="topictitle"><a href="/topicdetail/{topic_id}"> <%= topic[i].topicTitle %>  </a></h2>
    

    【讨论】:

    • 这实际上很有意义!谢谢。但遗憾的是它仍然没有显示任何内容
    • 哇,我不得不读了 5 遍才看到遗漏的内容,现在确实显示了标题!现在我只需要弄清楚如何显示用户名
    • 看来我的大学确实看到了用户名。所以这似乎也可以工作,但在我的电脑上却不行:/谢谢你的帮助
    • 没问题,抱歉,我上次的评论实际上犯了一个错误,需要关闭的是&lt;h2&gt; 标签,而不是&lt;a&gt;。无论如何,应该显示用户名,除非数据库中的字段为空或字段名称错误,否则需要更多详细信息来调试。
    • 是的,我找到了 ^^。那么在我大学的电脑上显示的用户名。但在我的却没有。但是当我在我的电脑上运行该应用程序时,我也会收到她没有的错误。就像我尝试创建一个主题,创建一个用户,登录......我已经尝试在我的 Mac 上运行它,但它甚至无法运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 2015-12-09
    • 2022-11-04
    • 2017-10-18
    • 2021-03-18
    • 2021-05-31
    • 2020-03-17
    相关资源
    最近更新 更多