Estoy tratando de crear un pequeño sitio web de comercio electrónico donde necesito tener una página de carrito. Necesito hacer que cuando un usuario haga clic en el botón Agregar al carrito, el artículo en particular se envíe al backend y se almacene en la colección del carrito. El problema con el que tengo problemas es que cuando hago clic en el botón Agregar a la tarjeta y se ejecuta la función vinculada, aparece un error que dice: SyntaxError: Unexpected token " in JSON at position 0
Aquí está mi función que se supone que envía datos al backend:
let addToCart = async (item) => { // item is the object I get which contains all the information I need try { let product = item._id; await fetch('http://localhost:5000/cart', { method: 'post', body: product, headers: { 'Content-Type': 'application/json', }, }); } catch (e) { console.log({error : e}); } };Este es mi modelo de carrito:
const cartSchema = new mongoose.Schema( { userId: { type: mongoose.Schema.Types.ObjectId, ref: 'users', required: true, }, cartProducts: { type: Array }, }, { versionKey: false, timestamps: true, } );Este es mi controlador de carrito POST CRUD
router.post('', authenticate, async (req, res) => { const user = req.user; console.log(user);` try { const cart = await Cart.findOneAndUpdate( { userId: user._id }, { $push: { cartProducts: req.body, }, }, { new: true, upsert: true } ); return res.status(200).send(cart); } catch (err) { return res.status(400).send({ message: err.message }); } });Puedo hacer que el usuario use el middleware de autenticación. Puedo publicar todo usando Postman, pero no sé cómo deshacerme del error de sintaxis.
Cuando consuelo.registro el tipo de elemento, obtengo un objeto. El tipo de producto es cadena. También intenté usar JSON.stringify pero nada parece funcionar. También he intentado usar el middleware bodyparser.