尝试将项目添加到购物车节点js

时间:2018-09-21 20:57:18

标签: node.js session mongoose cart

嗨,当我尝试使用函数“ add”时,我似乎感觉到我不明白的问题。 我在控制台登录“产品”以查看它是否存在,并且确实存在, 但是当我尝试使用“添加”功能时,它只是告诉我该产品未定义。

错误:enter image description here

我的购物车获取路线:

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;
}
}

1 个答案:

答案 0 :(得分:1)

您有错字:

cart.add(product, prodcut._id)需要更改为cart.add(product, product._id)