Heim > Fragen und Antworten > Hauptteil
Alles läuft gut, aber die Daten, die ich in res() erhalte, liegen einen Schritt hinter dem eigentlichen Vorgang zurück. Ich habe den gesamten Code hundertmal umgeschrieben und verstehe nicht mehr, wo das Problem liegt.
Dies ist Teil des Backend-Codes, der express.js, node.js und mongodb verwendet:
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粉5742689892024-01-17 11:04:50
在else条件中添加await。即:
let newCart = await cart.save(); res.json(newCart);