javascript - 无法从请求正文中检索值
问题描述
我像这样在邮递员中传递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 它可以工作,但不是这样。
解决方案
您需要使用 body-parser npm 模块来解析正文。你在用吗?还将扩展的 urlencoded 选项设置为 true。
更新:
由于现在附上了屏幕截图,我看到您在 POSTMAN 中使用原始 JSON 作为正文,
所以使用 app.use(express.json());
或 app.use(body-parser.json()
另外,GET 请求通常在 URL 中传递参数,所以也许你可以避免使用正文。仅当您想创建新数据时才使用 POST 请求,而不是根据传递给端点的参数返回数据。