首页 > 解决方案 > 无法从请求正文中检索值

问题描述

我像这样在邮递员中传递api请求

{
    "q":"delhi ncr"
}

我的 api 看起来像这样

app.get('/locations', async (req, res) => {
  const query = req.body.q;
  console.log(req.body);
  const data = await zomato.cities({ q: String(query),count: 1 })

  res.send(data);
}

控制台日志返回{}我不知道我哪里出错了。如果我将一些字符串值硬编码为 q 它可以工作,但不是这样。

邮递员请求

标签: javascriptnode.jsexpress

解决方案


您需要使用 body-parser npm 模块来解析正文。你在用吗?还将扩展的 urlencoded 选项设置为 true。

更新:

由于现在附上了屏幕截图,我看到您在 POSTMAN 中使用原始 JSON 作为正文,

所以使用 app.use(express.json());

或 app.use(body-parser.json()

另外,GET 请求通常在 URL 中传递参数,所以也许你可以避免使用正文。仅当您想创建新数据时才使用 POST 请求,而不是根据传递给端点的参数返回数据。


推荐阅读