Невозможно отправить данные для просмотра в приложении nodejs

0

Простите мой новичок. Изучение того, как создавать приложения 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, а пользователь не определяет сообщение об ошибке.

Теги:
ejs

1 ответ

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>
  • 0
    Я отредактировал свой код и смог отобразить страницу, но имя не отображается. Я могу видеть данные, когда я делаю res.send(user) так почему они не отображаются в моем представлении, когда я делаю user.name
  • 0
    @Mena Можете ли вы сделать console.dir(row) опубликовать результат здесь, чтобы я мог видеть, как создается ваш user объект?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню