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

问题描述 投票:1回答:1

我有一个带有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')}}没有产生值{{/ each}}如何在把手中访问和显示'tot'的值?谢谢

handlebars.js sequelize.js
1个回答
0
投票

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

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

并在手柄模板访问帮助器像:

<span>{{sequelizeGet item 'tot'}}</span>
© www.soinside.com 2019 - 2024. All rights reserved.