我正在建立一个网站,并且正在尝试设置一个审查选项。我从Mysql数据库查询评论,然后将数据重新发送到“ .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});
pug文件
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,但这也不起作用。关于如何解决这个问题有什么想法吗?
答案 0 :(得分:1)
该视图为空,因为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});
});