Простите мой новичок. Изучение того, как создавать приложения node.js с помощью mysql и ejs. Моя задача: я не могу понять, как данные, полученные из моей базы данных, будут отправлены в мой ответ и отображены. За последние 2 дня я пробовал разные способы сделать это, насколько я понимаю из ответа здесь, но потерпел неудачу. Это код, с которым я играю, и мне нужна помощь.
//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, а пользователь не определяет сообщение об ошибке.
Попробуй это:
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>
res.send(user)
так почему они не отображаются в моем представлении, когда я делаюuser.name
console.dir(row)
опубликовать результат здесь, чтобы я мог видеть, как создается вашuser
объект?