使用把手显示来自sequelize查询的值

时间:2017-11-14 18:03:28

标签: handlebars.js sequelize.js

我有一个带有product_price和数量的购物车型号。我正在写一个sequelize查询来计算总价格*数量 这是我的查询

db.Cart.findAll({

    attributes: {include: [[db.sequelize.condition(db.sequelize.col('cart_quantity'), '*', db.sequelize.col('price')),'tot']]}

})

Sequelize documentatoin说要访问我们使用的'tot'的值 instance.get( 'TOT')。 所以在结果中console.log(item.get('tot')显示正确的值

.then(function(dbCart){       //我们可以在回调函数

中访问产品作为参数
  dbCart.forEach(function(item){
    console.log(item.get('tot'));
  });
  var hbsObject = {
    products: dbCart,
  };
res.render("shop/cart", hbsObject);
});

});

现在,当我尝试访问carts.handlebars文件中的值时 我无法显示或访问'tot'的值 {{#each products}}   {{TOT}} 要么 {{Cart.tot}}或{{products.tot}}或{{products.get('tot')}}没有产生任何价值 {{/每}} 如何在车把中访问和显示'tot'的值? 谢谢

2 个答案:

答案 0 :(得分:0)

据我所知,您只能使用item.get('tot')访问查询结果,但由于无法从车把调用函数,因此需要解决。一种方法是添加仅包装.get()函数的车把助手。

const Handlebars = require('handlebars');
Handlebars.registerHelper('sequelizeGet', function(obj, col) {
  return obj.get(col);
}); 

在车把模板中访问该帮助程序,如:

<span>{{sequelizeGet item 'tot'}}</span>

答案 1 :(得分:0)

尝试:

     from   to  id        p       q       p1      q1
0     104  103   1  -414.35   62.23   415.00    0.00
1     105  102   1 -1197.37  489.83  1203.11 -395.44

或尝试:

{{#each users}}
    {{#dataValues}}
        <p>Username: {{username}}</p>
        <p>Email: {{email}}</p>
    {{/dataValues}}
{{/each}}