2016-11-08 43 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

相關問題