1
每次我得到一个新的价格,以下是应该发生: totalprice = totalprice +车[I] 例如,如果totalprice以前500和新的价格是800,总价格应该是(500 + 800),而它目前是(500 + 500 + 800)。为什么会发生?的Session变量更新数据两次
exports.add = function(req, res) {
var cart = req.body.cart;
console.log('frome node..adding checkcart.js');
console.log("Session Initialized!!");
for(var i = 0 ; i < cart.length ; i++) {
totalprice = cart[i].price + totalprice;
console.log('Current Price: '+cart[i].price);
}
req.session.cart = cart;
console.log(cart);
console.log('total: ' + totalprice);
//req.session.totalprice = totalprice;
json_responses = {
"totalprice": req.session.totalprice
}
res.send(json_responses);
};
添加控制台日志为例 –
frome node..adding checkcart.js [{uid:'lenvyga',产品:'联想瑜伽',价格:800}] 会话已初始化! 当前价格:800 总数:800 POST/addtocart 200 117.127毫秒 - 2个 弗罗姆node..adding checkcart.js [{UID: 'lenvyga',产品: '联想瑜伽',价格:800},{ uid:'macbpr',产品:'MacBook Pro',价格:1200}] 会话初始化! 当前价格:800 当前价格:1200 总计:2800 – jack
问题在哪里? 首先,总价格为0,当添加800时,它将变为800,如控制台日志中所述。然后再添加两个,(1)800和(2)1200.因此,需要总价格(目前为800),并增加价格(1)和(2)。这使得800 + 1200 + 800应该是2800.也就是说,正是你得到的(根据控制台日志)。 –