Javascript 如何使用购物车集合

Javascript 如何使用购物车集合,javascript,node.js,express,Javascript,Node.js,Express,我正在尝试了解如何使用会话跟踪用户并更新我的购物车集合: app.post('/cart/:id',function (req, res) { if(!userKey) { userKey = req.session.id; } Cart.findOne({userKey : userKey},function (err, cart) { if(err) { console.log("Er

我正在尝试了解如何使用会话跟踪用户并更新我的购物车集合:

app.post('/cart/:id',function (req, res)
{
    if(!userKey)
    {
        userKey = req.session.id;
    }

    Cart.findOne({userKey : userKey},function (err, cart)
    {
       if(err)
       {
           console.log("Error finding cart "+err);
       }
        else if(!cart)
       {
           cart = new Cart();
           cart.userKey = userKey;
           cart.items = [];

           cart.save(function (err)
           {
               if(err)
               {
                   console.log("Error saving cart"+err);
               }
                   Ticket.findOne({_id:req.params.id},function (err, ticket)
                   {
                       if(err)
                       {
                           console.log("Error finding ticket "+err);
                       }

                       cart.items.push({
                           type:ticket.type,
                           price:ticket.price,
                           quantity:req.body.quantity,
                           total:ticket.price * req.body.quantity,
                           time:ticket.time,
                           date:ticket.date
                       });

                   });
           });

       }
        else if(cart)
       {
           Ticket.findOne({_id:req.params.id},function (err, ticket)
           {
               if (err)
               {
                   console.log("Error finding ticket " + err);
               }

               cart.items.push({
                       type: ticket.type,
                       price: ticket.price,
                       quantity: req.body.quantity,
                       total: ticket.price * req.body.quantity,
                       time: ticket.time,
                       date: ticket.date
                   });

           });
       }
    });
});
上面是我route.js文件中的代码。我正在构建一个express和node应用程序。我有一个页面,其中包含可以添加到购物车的项目,我还有一个购物车集合。当我将第一个项目添加到购物车时,该代码会检查是否有购物车,并检查是否没有购物车,它会创建一个新的购物车,为userkey变量分配一个会话id并插入新项目。
问题是,当我向购物车添加额外项目时,它会覆盖购物车中的现有数据,而不是更新购物车。我不知道如何解决这个问题,插入物品后我必须保存购物车。所以我补充说

 cart.save();

在完成票插入功能后

我必须在插入物品后保存购物车。所以我补充说

 cart.save();
在票据插入功能之后