如何解决这个未定义属性的node.js错误?

How could you solve this node.js error of undefined property?

本文关键字:属性 node js 错误 未定义 何解决 解决      更新时间:2023-09-26

我有这个错误信息

无法读取未定义属性" title "

当我使用帖子时,它工作得很好。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>

你能告诉我这段代码到底出了什么问题吗?

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

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