与MEAN的电子商务项目

时间:2016-05-20 15:48:51

标签: angularjs node.js mongodb express mongoose

我正在从事电子商务项目,当顾客选择要购买的产品时我会把它们存放在购物车中,当他验证它时,我无法更新购买产品总量的新价值。

我正在使用MEAN技术,我有一个用于产品的猫鼬模型 产品型号

`var productModel = new Schema({
  title : {type:String,required : true},
  imgUrl : {type:String,required : true},
  price  :{type:Number,required : true},
  quantity : {type:Number,required : true},
  ref : {type:String,required : true},
  category : {type:String,required : true},
  descr : {type:String},
});`

and a **user Model** : 
var User = new Schema({
  firstname : {type : String },
  lastname : {type : String },
  username : {type : String, unique : true },
  role : { type:String , default : "customer"},
  password : {type : String },
  cart : [{
    productId : String,
    title : String,
    imgUrl : String,
    price : Number,
    quantity : Number,
    qte : Number,
    totalPrice : Number
  }],
  purchasedProds : [{
    productId : String,
    title : String,
    imgUrl : String,
    price : Number,
    qte : Number,
    totalPrice : Number,
    date : {type : Date, default : Date.now}
  }]

});

在服务器端我使用两条路由,一个 productRouter 来处理产品CRUD,一个 userRouter 来处理用户身份验证及其购物车。 当用户验证其购物车我将清除用户集合中的购物车字段并将其插入 purchaseProds 字段时,我成功完成此操作,就像我上面提到的那样我无法做到这一点更新已购买产品总数的新值。 我已经尝试了3天但它没有工作......请任何帮助将不胜感激...谢谢

1 个答案:

答案 0 :(得分:0)

totalPrice不应该是数组的元素。它应该是购物车对象的属性。像这样的东西;

cart: [totalPrice : Number, items : {
    productId : String,
    title : String,
    imgUrl : String,
    price : Number,
    quantity : Number,
    qte : Number        
}]

因此,每次商品添加到购物车时,您应将其添加为购物车的商品并自动添加价格此商品为购物车的 totalPrice