MongoDB努力更新数据库
Posted
技术标签:
【中文标题】MongoDB努力更新数据库【英文标题】:MongoDB struggling to update DB 【发布时间】:2021-11-23 05:26:07 【问题描述】:我是 MongoDB 的新手。如果用户喜欢卡片,我有一个数据库,其中将存储卡片数据并更新计数。给我一个总点赞数。
我的 res 一直是 400,但我不知道为什么。我得到了手动工作的更新方法。但是当我把它放到一个函数中时它就不起作用了。
我正在使用 NEXT JS API 路由。
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" );
;
功能
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));
;
谢谢!
【问题讨论】:
什么是错误?catch (error) res.send(400, error: "Error" );
您是否尝试过打印错误以查看其内容,而不是返回一般状态码?
【参考方案1】:
你正在路过
id: "<id>"
作为 API 中的主体并从 req.body 中读取“cardHandler”,即“未定义”。
在您的 POST API 中,替换
const query =
cardId: req.body.cardHandler,
与
const query =
cardId: req.body.id
【讨论】:
不,我试过了,但没有工作 这也是您的代码中的一个问题。您在 API 中传递 id: "以上是关于MongoDB努力更新数据库的主要内容,如果未能解决你的问题,请参考以下文章