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

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

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

  1. {review: "this is a review"}

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

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

帕格锉

  1. extends layout
  2. block content
  3. p= review

数据

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

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

qgelzfjb

qgelzfjb1#

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

  1. con.query("SELECT * FROM reviews.eatingReviews", function(err, rows) {
  2. review = rows[0].Review;
  3. console.log(review)
  4. if (err) throw err;
  5. res.render('test',
  6. {review: review});
  7. });

相关问题