Я пытаюсь выяснить, как использовать сессии для отслеживания пользователей, а также обновить свою коллекцию корзины:Как использовать коллекцию корзины
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 file.i» m создание экспресс и узел app.I есть страница с элементами, которые могут быть добавлены в корзину, и у меня есть коллекция корзины. Код работает, когда я добавляю первый элемент в корзину, он проверяет, есть ли корзина, и видно, что его нет, он создает новый, назначает идентификатор сеанса переменной userkey и вставляет новый элемент. Проблема заключается в том, что я добавляю дополнительные предметы в корзину, вместо того, чтобы обновлять корзину, она переопределяет существующие данные в корзине. Я не знаю, как это решить