【发布时间】:2020-07-21 11:13:13
【问题描述】:
我不知道出了什么问题。我尝试使用数据表单 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] });
}
})
结果在浏览器中正确打印,但在终端中出现错误:
类型错误: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);}
结果如下:
文本行 { p_id: 11, p_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) 时,一切正常(没有任何错误),但我认为,使用它不是正确的方法。
有什么建议吗?
【问题讨论】: