添加产品的次数超过购物车中一次传递的参数是用户ID和产品ID时,无法更新商品数量 将第一个产品添加到购物车并推入独特的产品时,我正在创建购物车。但是,当第二次添加相同的产品时,我想更新产品的数量x 2,而不是添加整个记录
这是我的代码:
router.get('/add-to-cart/:userID/:id', function (req, res, next) {
var productId = req.params.id;
var userId = req.params.userID;
Cart.findOne({ user: userId }, (err, doc) => {
if (err) res.send(err);
if (doc == null)
{
var cart = new Cart;
Product.findById(productId, (err, product) => {
if (err) console.error(err);
let item={
id:product._id,
name:product.name,
price:product.price,
subtotal:product.price*1,
qty:1
}
cart.items.push(item);
cart.user = userId; // set cart user
cart.totalPrice = item.price * item.qty;
cart.totalQty ++;
cart.save((err, data) => {
if (err) res.send(err);
res.json(cart);
});
});
}
else{
Product.findById(productId, (err, product) =>{
let item={
id: product._id,
name: product.name,
price:product.price,
subtotal:product.price*1,
qty:1
}
doc.items.push(item);
doc.save(err,data=>{
res.json(doc);
})
doc.totalQty ++;
doc.totalPrice += item.price*item.qty;
})
}
})
});
module.exports =路由器;
这是我的购物车模式
const mongoose = require("mongoose");
var schema = mongoose.Schema;
// sample user schema
var CartSchema = new mongoose.Schema({
product: {type: mongoose.Schema.Types.ObjectId,ref: 'Product'},
totalQty:{type: Number,default: 0},
totalPrice: {type: Number,default: 0},
items : Array,
user:{type: mongoose.Schema.Types.ObjectId,ref: 'User'}
});
module.exports = mongoose.model('Cart', CartSchema);