我有一个带有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'的值?谢谢
据我所知,你只能使用item.get('tot')访问查询结果,但由于你不能从把手调用函数,你需要一个解决方法。一种方法是添加一个只包装.get()函数的把手帮助器。
const Handlebars = require('handlebars');
Handlebars.registerHelper('sequelizeGet', function(obj, col) {
return obj.get(col);
});
并在手柄模板访问帮助器像:
<span>{{sequelizeGet item 'tot'}}</span>