【问题标题】:NodeJs MySql fetch one result throws error, but worksNodeJs MySql 获取一个结果会引发错误,但可以工作
【发布时间】: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) 时,一切正常(没有任何错误),但我认为,使用它不是正确的方法。

有什么建议吗?

【问题讨论】:

    标签: mysql node.js ejs


    【解决方案1】:

    我刚刚在 EJS 文件中删除了这个。现在终端很安静。

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

    【讨论】:

      猜你喜欢
      • 2014-01-30
      • 2019-10-24
      • 2016-04-07
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 2017-01-04
      相关资源
      最近更新 更多