Доступ к объекту SQL с помощью рулей для отображения на экране

0

Я создаю приложение книжного магазина, используя базу данных SQL с модулем mysqljs, я могу получить все книги из базы данных, но я хочу получить доступ к одной книге и отобразить ее детали.

Я беру объект книги по его идентификатору, и я показываю его в консоли

книга подробности маршрут:

/* GET Book Details page. */
router.get('/details/:id', function(req, res, next) {
    var sql = 'SELECT * FROM books WHERE id = ${req.params.id}';
    var query = db.query(sql, function (err, result) {
        if(err) throw err;
        console.log(result);
        var model = {result: result}
        res.render('shop/details', { title: 'Books', model });
    });
});

отображает это на консоли

это то, что отображает консоль

в моем коде руля, который я написал

<h1 class="text-center">Book Details Here</h1>
<h3> Your Book Name is {{this.BookName}}</h3>

но он отображает только "Ваше имя книги" без названия книги

Теги:
express
handlebars.js

1 ответ

0

Он выглядит как ваш шаблон, ожидает объект Book как контекст, а в вашем примере кода вы передаете ему ключ результата, который отображается в массив, содержащий объект книги.

Вот как я обычно отлаживаю такие проблемы: я бы передал объектный литерал как контекст, чтобы убедиться, что метод рендеринга работает так, как я ожидаю.

res.render('shop/details', { title: 'Books', {BookName: 'Season of migration to the north',id: 198} });

если эта работа, то вам нужно изменить модель, которую вы переходите на страницу. поэтому вместо этого вы будете передавать запрос [0];

если это не сработает, я бы запустил весь объект контекста в шаблон для его отладки. этот пост должен помочь вам в этом: Display Handlebars.js контекст в шаблоне

Удачи!

Ещё вопросы

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