嗨,当我尝试使用函数“ add”时,我似乎感觉到我不明白的问题。 我在控制台登录“产品”以查看它是否存在,并且确实存在, 但是当我尝试使用“添加”功能时,它只是告诉我该产品未定义。
我的购物车获取路线:
router.get('/cartAdd/:_id',(req,res)=>{
var productId = req.params._id;
console.log(productId)
var cart = new Cart(req.session.cart ? req.session.cart : {items:{}})
itemModel.findById(productId, function(err,product){
console.log(product)
console.log(product._id)
if(err){
return res.redirect('/')
}
cart.add(product, prodcut._id)
req.session.cart = cart;
console.log(req.session.cart)
res.redirect('/')
})
})
我的添加函数,在购物车模型中:
module.exports = function Cart(oldCart){
this.items=oldCart.items;
this.totalQty=oldCart.totalQty
this.totalPrice=oldCart.totalPrice;
this.add = function(item, id){
console.log(item)
console.log(id)
var storedItem = this.items[id]
console.log(storedItem)
if(!storedItem){
storedItem = this.item[id]= {item: item, qty:0, price:0};
}
storedItem.qty++;
storedItem.price =storedItem.item.price*storedItem.qty;
this.totalQty++
this.totalPrice += storedItem.item.price;}
this.generateArry = function(){
var arr= [];
for(var id in this.items){
arr.push(this.items[id]);
}
return arr;
}
}
答案 0 :(得分:1)
您有错字:
cart.add(product, prodcut._id)
需要更改为cart.add(product, product._id)