如何解决这个未定义属性的node.js错误?
How could you solve this node.js error of undefined property?
我有这个错误信息
无法读取未定义属性" 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++){ %>
相关文章:
- WebRTC,socket.io,node.js:无法读取属性'发射'的未定义
- 无法读取未定义的属性“用户名” - 通过电子邮件在 Node.js 中发送表单数据
- 如何通过MongoDB驱动程序(node.js)将属性(属性名称是可变的)添加到对象中
- 正在获取丢失的错误处理程序套接字消息,无法读取属性'timerID'使用Node.js和Socket.i
- Node.js:检查对象中是否缺少属性
- app.render[TypeError:无法设置undefined的属性'content']在Node
- JavaScript/node.js:尝试访问对象时获取NULL's在某个函数之外的属性
- node.js 中对象上的方法和属性之间的差异
- 如何访问 JavaScript DOM Node 元素上的属性值
- Node.js 表达式的错误对象公开哪些属性
- Node.js rest api,具有 json 和 bigint 属性
- node.js process.env:将 process.env 属性分配给字符串类型中的未定义结果
- 从 Node.js 中数组中单个对象的单个属性中获取值
- Node.js regex:在样式表中查找所有CSS属性,而不是在注释中
- node.js中的计算属性
- Node,Express,Swig Template-HTML属性中的变量
- Node.js请求-Can't获取REST响应(JSON)的属性
- Node/AngularJS-类型错误:无法读取属性'_id'的未定义
- Node.js将对象的所有属性转换为字符串
- node.js根据字符串属性名称设置属性