【问题标题】:Data passed to Handlebars not showing传递给 Handlebars 的数据未显示
【发布时间】:2019-05-07 23:40:20
【问题描述】:

我想显示已经将结果记录到控制台的数据库中的项目。控制台显示结果。但车把不显示数据。

这是控制器

exports.createCategory = function(req, res, next){
    knex('product_category')
    .select()
    .then(function(errors, result){
        res.render('administration/category', { result, errors });
    });
   }

这是我的路由器

router.get('/category', adminControllers.createCategory);

这是我的车把

   <div class="col-md-4 col-lg-4">
           {{#each result}}
           <h1>{{category_name}}</h1>
           {{/each}}
   </div>

【问题讨论】:

  • result 的值是多少?是object、基元数组、objects数组等吗?

标签: node.js express handlebars.js knex.js


【解决方案1】:

只做调试101。

添加调试打印并检查您是否从 DB 中获取了正确的数据,并且它甚至可以执行。

向模板中添加一些字段以显示错误。现在,如果查询返回错误,则不会显示任何内容。

还添加一些您传递给模板的静态测试属性并打印它以确保您正确使用车把模板。

【讨论】:

    【解决方案2】:

    我后来知道了。

    它是 knex 查询。

    在研究了 knex 文档和一些在线资源后,我发现我也可以这样做

    knex('table').then(function(result)){
    res.render('/', {result});
    }
    

    但我不明白为什么这不起作用

    knex('table').select().then(function(result)){
    res.render('/', {result});
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 2020-10-16
      • 2014-08-12
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 2019-01-03
      相关资源
      最近更新 更多