我不知道怎么了。我尝试使用MySQL数据表格通过EJS打印一篇文章。它可以工作,但是在终端上抛出一个错误。
db.query('SELECT * FROM post WHERE p_id=? and p_deleted=0 LIMIT 1', [id], (err, rows) => {
if (err) {
throw err;
} else {
res.render("post_test", { post: rows[0] });
}
})
结果在浏览器中正确打印,但是在终端显示错误:
TypeError:C:\ Users \ Pitero \ Desktop \ test \ views \ post_test.ejs:2
2 |
无法读取未定义的属性'p_title'
此终端困扰我,所以我也尝试了看看发生了什么:
else {res.render("post_test", { post: rows[0] });
console.log(rows[0]);
console.log(typeof rows[0].p_title);
console.log(rows[0].p_title);}
结果如下:
TextRow {p_id:11p_u_id:0,p_title:'POST NR .: 11',p_body:“某些值”}
字符串
POST NR .: 11
未定义C:\ Users \ Pitero \ Desktop \ test \ app.js:91
console.log(typeof rows[0].p_title); ^
TypeError:无法读取未定义的属性'p_title'
有趣的是,当我删除res.render("post_test", { post: rows[0] });
时(在console.log上)根本没有错误。
也当我在EJS文件post.forEach(function(post)
中使用时,一切正常(没有任何错误),但我认为,这不是处理它的适当方法。
有什么建议吗?
我刚刚在EJS文件中摆脱了这一点。现在它在终端很安静。
<% if (post != null){ %>
<h6"><%= post.p_title %></h6>
<% } %>