express视图引擎无法识别发送到前端的数据

jbose2ul  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(262)

我正在做一个网站,我试图建立一个审查选项。我从mysql数据库和res查询评论。将数据发送到“.pug”文件。数据没有显示。但是,如果我手动输入数据,它会显示出来。例如

{review: "this is a review"}

这工作得很好,但当我尝试直接访问数据时,它就不行了。

var review;   
app.get('/', function(req,res) {
con.query("SELECT * FROM reviews.eatingReviews", function(err, rows) {
    review = rows[0].Review;
    console.log(review)
    if (err) throw err;
});
res.render('test',
    {review: review});

帕格锉

extends layout
   block content
      p= review

数据

RowDataPacket {
 Name: 'James Laskey',
 Email: 'james.laskey23@gmail.com',
 Review: 'This book is classic!',
 Rating: 5 }

我需要让这些信息被html识别。它一直显示为未定义。我在对象上尝试了json.parse,但也没有成功。你有没有想过怎么解决这个问题?

qgelzfjb

qgelzfjb1#

视图为空,因为 res.render 是在 con.query 完成从数据库获取数据。 con.query 是一个异步函数。
作为解决方法,您必须 res.render 内部 con.query :

con.query("SELECT * FROM reviews.eatingReviews", function(err, rows) {
    review = rows[0].Review;
    console.log(review)
    if (err) throw err;

    res.render('test',
      {review: review});
});

相关问题