Maison > Questions et réponses > le corps du texte
Tout fonctionne bien, mais les données que je reçois dans res() sont en retard sur l'opération réelle. J'ai réécrit le code entier une centaine de fois et je ne comprends plus quel est le problème.
Cela fait partie du code backend, utilisant express.js, node.js et 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粉6748763852024-01-17 22:21:52
Utilisez {new: true} dans findOneAndUpdate() et utilisez save() au moment pour un fonctionnement asynchrone
P粉5742689892024-01-17 11:04:50
Ajouter une attente dans une autre condition. C'est à dire :
let newCart = await cart.save(); res.json(newCart);