모든 것이 잘 돌아가고 있지만 res()에서 얻은 데이터는 실제 작업보다 한 단계 뒤처져 있습니다. 전체 코드를 수백 번 다시 작성했는데 더 이상 문제가 무엇인지 이해할 수 없습니다.
이것은 express.js, node.js 및 mongodb를 사용하는 백엔드 코드의 일부입니다.
export const addToCart = async (req, res) => { try { const cart = await CartModul.findOne({ user: req.userId }); if (cart) { const product_id = req.body.product_id; const item = cart.cartItems.find((c) => c.product_id == product_id); console.log("item", item); if (item) { try { const cart = await CartModul.findOneAndUpdate( { user: req.userId, "cartItems.product_id": product_id }, { "cartItems.$": { ...req.body, quantity: item.quantity + req.body.quantity, totalPrice: item.totalPrice + req.body.price, }, } ); if (cart) { return res.status(200).json({ cart }); } } catch (error) { return res.status(400).json({ error }); } } else { try { const cart = await CartModul.findOneAndUpdate( { user: req.userId }, { $push: { cartItems: req.body, }, } ); if (cart) { return res.status(200).json({ cart }); } } catch (error) { return res.status(400).json({ error }); } } } else { try { const cart = new CartModul({ user: req.userId, cartItems: req.body, }); cart.save(); res.json(cart); } catch (error) { return res.status(400).json({ error }); } } } catch (error) { return res.status(400).json({ error })}};
findOneAndUpdate()에서 {new: true}를 사용하고, 비동기 작업을 위해 순간적으로 save()를 사용하세요
다른 조건에 대기를 추가하세요. 즉:
으아아아