NodeJs MySql获取一个结果抛出错误,但是可以工作

问题描述 投票:0回答:1

我不知道怎么了。我尝试使用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)中使用时,一切正常(没有任何错误),但我认为,这不是处理它的适当方法。

有什么建议吗?

mysql node.js ejs
1个回答
0
投票

我刚刚在EJS文件中摆脱了这一点。现在它在终端很安静。

<% if (post != null){  %>
<h6"><%= post.p_title %></h6>

<% } %>
© www.soinside.com 2019 - 2024. All rights reserved.