2016-11-08 37 views
1

我有你怎么能解决这个未定义属性的node.js错误?

此错误信息无法读取的不确定

财产“标题”当我用posts.forEach遍历它工作得很好。但是 与for循环一起使用时停止工作。 你能帮忙吗?

这是我的代码

<section class="forum"> 
<ul class="pages"> 
    <% for (var i = 1; i <= Math.ceil(posts.length/3); i++) { %> 

      <li><a href="#<%=i%>"><%= i %></a></li> 

    <% } %> 
    <% var pages = i %> 

</ul> 
    <div class="tabbedPages"> 
     <div class="tabbedPage"> 

    <% for (var i = 1; i <= pages; i++) { %> 
     <div class="page" id="<%=i%>"> 
       <table> 
        <tr> 
         <th>Title</th> 
         <th>Replies</th> 
         <th>Last Message</th> 
        </tr> 
       <% for (var j = (i - 1) * 3; j < (i * 3) ; j++){ %> 
        <tr> 
         <td> 

          <h2><%= posts[j].title %></h2> 
          <h2><%= posts[j].author %>, 
          <% var diff = posts[j].date - Date.now %> 
          <% var msec = diff 
           var dd = Math.floor(msec/1000/60/60/24); 
           msec -= dd * 100 * 60 * 24; 
           var hh = Math.floor(msec/1000/60/60); 
           msec -= hh * 1000 * 60 * 60; 
           var mm = Math.floor(msec/1000/60); 
           msec -= mm * 1000 * 60; 
           var ss = Math.floor(msec/1000); 
           msec -= ss * 1000; 
          %> 
          <% if (dd >= 1) { %> 
           <%= dd %> days ago 
          <% } else if (hh >= 1) { %> 
           <%= hh %> hours ago 
          <% } else if (mm >= 2) { %> 
           <%= mm %> minutes ago 
          <% } else if (mm == 1) { %> 
           1 minute ago 
          <% } else { %> 
           Moments ago 
          <% } %> 

          </h2> 
         </td> 
         <td> 
          <h2>Replies: <%= posts[j].posts.length%></h2> 



         </td> 
         <td> 
          <h2> 
           <% if (posts[j].posts.length == 0) { %> 
            Not Available Yet 
           <% } else { %> 
           <%= posts[j].posts[posts[j].posts.length - 1].author %> 
           <% } %> 
           </h2> 
          <h2> 
          <% var diff = posts[j].date - Date.now %> 
          <% var msec = diff 
           var dd = Math.floor(msec/1000/60/60/24); 
           msec -= dd * 100 * 60 * 24; 
           var hh = Math.floor(msec/1000/60/60); 
           msec -= hh * 1000 * 60 * 60; 
           var mm = Math.floor(msec/1000/60); 
           msec -= mm * 1000 * 60; 
           var ss = Math.floor(msec/1000); 
           msec -= ss * 1000; 
          %> 
          <% if (dd >= 1) { %> 
           <%= dd %> days ago 
          <% } else if (hh >= 1) { %> 
           <%= hh %> hours ago 
          <% } else if (mm >= 2) { %> 
           <%= mm %> minutes ago 
          <% } else if (mm == 1) { %> 
           1 minute ago 
          <% } else { %> 
           Moments ago 
          <% } %> 
          </h2> 
         </td> 

        </tr> 

      <% } %> 

      </table> 

    <% } %> 
</section> 

你能帮我到底是什么毛病此代码?

+0

在某些时刻的指标j'帖[J] .title'没有找到,但我不明白的逻辑在这里:'为(VAR J =( i - 1)* 3; j <(i * 3); j ++){' –

回答

0

你想每页3篇文章,但最后一页也可能有1或2个职位。所以,你需要添加其他检查:

<% for (var j = (i - 1) * 3; j < (i * 3) && j < posts.length ; j++){ %> 
+0

哦,我的上帝......它正在工作...... – NodeSaiyan

+0

我需要像你这样的人来当我的主人。你已经开悟了我的生活。你能成为我的绝地大师,并指示我的方式? – NodeSaiyan

+0

@NodeSaiyan在网站上提出问题可能会帮助你更多...同时不要忘记upvote好帖子,downvote坏帖子,并标记为接受的最佳答案! – tcooc

相关问题