reactjs - 空对象被发送到数据库
问题描述
我正在编写一个基本的搜索功能来查询 postgresql 数据库。当我运行它并使用 console.logs 时,我一直看到它正在发送并返回 200,但是它发送的对象是空白的。下面是我的函数,后面是我发送的 curl 命令。当我在数据库种子期间运行搜索功能时,它能够找到我正在寻找的东西。
curl http://localhost:5000/api/company/parts/GCS
companyRouter.get("/parts/:id", async (req, res, next) => {
const partNumber = req.body;
console.log("request 19", partNumber, req.body);
try {
const part = await searchPartsNumber(partNumber);
res.send({ part });
} catch ({ name, message }) {
next({ name, message });
}
});
解决方案
解决方案-1:
您没有将任何正文传递给请求。您正在传递一个 url 参数。这就是为什么你的身体是一个空的物体。如果你想在你的服务器中获取参数(在你的情况下是 GCS )你应该做这样的事情
const partNumber = req.param('id');
解决方案 - 2
否则,如果您想使用 curl 传递正文,您应该像这样修改您的请求。
curl --header "Content-Type: application/json" \
--request POST \
--data '{"partNumber":"YOUR_PART_NUMBER"}' \
http://localhost:5000/api/company/parts/GCS
因为 req.body 是一个对象。你应该像这样提取你的partNumber
const {partNumber} = req.body;
推荐阅读
- selenium - 我试图找到日历,但总是说找不到那个元素。如何找到这个日历请指导我
- javascript - 显示从通过 viewModel 循环的函数返回的列表
- android - Flutter Android TV 应用无法使用 D Pad 进行选择
- c# - 如何使用 Serilog 将日志输出到 Winform 中的文本框?
- javascript - React Native:为什么我的 Context.Consumer 不起作用?
- regex - 用TCL中的方括号匹配字符串
- html - 在标题中居中不同字体大小的特殊文本
- typescript - Next.js - 导入 TypeScript 模块时找不到模块
- python - 客户端断开连接后如何重新连接?
- import - 为什么无法加载模块?