1
카트 모음을 사용하고 또한 내 카트 컬렉션을 업데이트하는 방법 :내가 사용자를 추적하는 세션을 사용하는 방법을 알아 내려고 노력하고있어
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에 믿을수입니다 ' 익스프레스 및 노드 app을 구축합니다. 저는 장바구니에 추가 할 수있는 항목이있는 페이지가 있으며 장바구니 콜렉션이 있습니다. 이 코드는 첫 번째 항목을 장바구니에 추가 할 때 작동하며 장바구니가 있는지 확인하고 없음이 있는지 확인하고 새 장을 만들고 userkey 변수에 세션 ID를 할당 한 다음 새 항목을 삽입합니다. 문제는 카트를 업데이트하는 대신 카트에 여분의 항목을 추가 할 때 카트의 기존 데이터를 무시하는 것입니다. 그 문제를 해결하는 방법을 모르겠다.