Soy nuevo en MongoDB. Tengo una base de datos donde se almacenarán los datos de las tarjetas y se actualizarán los recuentos si al usuario le gustan las tarjetas. Dándome un número total de me gusta.
Sigo obteniendo mi resolución como 400 y no puedo entender por qué. Tengo el método de actualización para trabajar manualmente. pero cuando lo pongo en una función no funciona.
Estoy usando las rutas API NEXT JS.
import dbConnect from "../../utils/dbConnect"; import FavSchema from "../../models/FavoriteModel"; dbConnect(); export default async (req, res) => { const { method } = req; switch (method) { case "GET": try { } catch (error) { res.status(400).json({ success: false }); } break; case "POST": try { const query = { cardId: req.body.cardHandler, }; await FavSchema.findOneAndUpdate( query, { $inc: { favCount: 1 } }, { upsert: true } ); res.send("Succesfully saved."); } catch (error) { res.send(400, { error: "Error" }); } } };función
const handleCardFavClick = (id) => { const cardHandler = { id, }; fetch("/api/favcounter", { method: "POST", body: JSON.stringify(cardHandler), headers: { "Content-Type": "application/json", }, }) .then((response) => response.json()) .then((data) => console.log(data)); dispatch(makeFav(cardHandler)); };¡Gracias!
estas pasando
{ id: "<id>" }como cuerpo en su API y leyendo "cardHandler" de req.body, que es "indefinido".
En su API POST, reemplace
const query = { cardId: req.body.cardHandler, }con
const query = { cardId: req.body.id }