>我正在制作一个网站,我正在尝试设置一个评论选项。我从我的Mysql DB查询评论并将数据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,但也没有用。关于如何解决这个问题的任何想法?
视图为空,因为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});
});