请原谅我的新手问题。学习如何使用mysql和ejs构建node.js应用程序。我的挑战是,我无法了解如何从我的数据库中检索到的数据将在我的响应中发送并显示出来。在过去的两天里,我已经尝试了不同的方法来做到这一点,从我的答案中得到最好的解答,但都失败了。这是我正在玩的代码,需要帮助
//index.js
router.get('/home', function(req, res, next) {
res.locals.connection.query('SELECT * FROM users WHERE id=1', function(err, row) {
if(err) {
console.log(err);
} else {
var user = row;
res.render('home', {
title: 'Home',
data: user
});
}
});
});
//home.ejs
<p class="text-center pb-2">Hello <%= user.name %></p>
当我运行我的app.js文件时,我得到500响应并且用户未定义错误消息。
答案 0 :(得分:0)
试试这个:
router.get('/home', function(req, res, next) {
res.locals.connection.query('SELECT * FROM users WHERE id=1', function(err, row) {
if(err) {
console.log(err);
} else {
var user = row;
res.render('home', {
title: 'Home',
user: user
});
}
});
});
您没有将用户对象发送到ejs引擎,您在data
属性中发送了用户对象。
或者,换句话说,在home.ejs
文件中,您可以写:
<p class="text-center pb-2">Hello <%= data.user.name %></p>