首页 > 解决方案 > 空对象被发送到数据库

问题描述

我正在编写一个基本的搜索功能来查询 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 });
  }
});

标签: reactjspostgresqlexpress

解决方案


解决方案-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;


推荐阅读