제목을 다음과 같이 다시 작성합니다. MongoDB는 주요 데이터를 컬렉션에 저장하지만 만료된 데이터를 res()에 보냅니다.
P粉585541766
P粉585541766 2024-01-17 00:18:34
0
2
384

모든 것이 잘 돌아가고 있지만 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 })}};

P粉585541766
P粉585541766

모든 응답(2)
P粉674876385

findOneAndUpdate()에서 {new: true}를 사용하고, 비동기 작업을 위해 순간적으로 save()를 사용하세요

P粉574268989

다른 조건에 대기를 추가하세요. 즉:

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿