我目前正在使用express,postgresql和ejs进行项目。现在,我试图从数据库中选择所有行,并将结果传递到ejs文件中,然后为每个行对象绘制一个矩形,但是它不起作用。也许我应该在脚本标签中使用“ document”而不是,但是如何在不使用的情况下将变量传递给ejs?
app.js中的代码
app.get('/',(req, res) => {
var getPeopleQuery = 'SELECT * FROM people';
pool.query(getPeopleQuery, (err, result) => {
if(err){
res.end(err);
} else {
res.render('pages/home', {'rows':result.rows});
}
});
});
home.ejs中的代码
<body>
<canvas id='myCanvas' width="1000" height="500"></canvas>
<% var c = document.getElementById('myCanvas'); %>
<% var ctx = c.getContext('2d'); %>
<% rows.forEach(function(row) { %>
<% ctx.fillStyle = 'red'; %>
<% ctx.fillRect(0, 0, 50, 100); %>
<% }); %>
</body>
您正在传递:{'rows':result.rows}到家。在家里,您正在使用:function(row)。我认为您应该回家:{rows:result.rows}