加入购物车(mongoose坑)

博客主要讲述了在使用mongoose操作MongoDB时遇到的问题,包括查询商品信息时因productId类型不匹配导致查询失败,以及购物车数据插入时缺少特定字段。解决方案是将数据库中productId改为String类型,并确保Schema与数据库字段一致,同时修正了商品数量加一的逻辑错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题总结:
1查询带上id数据库显示null,
原因 productId在定义的Schema中定义的String类型,但是mongoDB数据库中定义的是integer类型,导致查不到。
解决:修改数据库id的类型为String
2

总结一下:
加入购物车的思路
users表的商品信息是来源于goods表,我们需要根据productId拿到商品信息,最终把这个商品信息一次性插入我们的购物车里面

用户表:

users表字段

userid 
username
password
orderList 订单列表(加入购物车下完单生成的订单)
  0  
     orderId
     orderTotal
     orderStatus
     _id
     createDate
cardList 购物车列表
addresslist 地址
  0 
     addressId
     username
     streetName
     posCode
     tel
     isDefault

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库字段

{
  "userId": 1,
  "username": 1,
  "password": 1,
  "orderList": [
    {
     "orderId": 1,
     "orderTotal": 1,
     "orderStatus": 1,
     "_id": 1,
     "createDate": 1
        }
        ],
  "cartList": [{
    "userId": 1,
    "productId": 1,
    "productName": 1,
    "salePrice": 1,
    "productImage": 1,
    "checked": 1,
    "productNum": 1
  }],
  "addressList": []
}
var userSchma = new mongoose.Schema({
  "userId": String,
  "username": String,
  "password": String,
  "orderList": [{
    "orderId": String,
    "orderTotal": String,
    "orderStatus": String,
    "_id": String,
    "createDate": String
  }],
  "cartList": [{
    "userId": String,
    "productId": String,
    "productName": String,
    "salePrice": String,
    "productImage": String,
    "checked": String,
    "productNum": String
  }],
  "addressList": Array
})
router.post('/api/goods/addCart', function (req, res, next) {
  // 没有判断当前购物车有没有数据

  // 因为我们要把商品添加到当前用户名下,所以需要一个用户Id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值