我正在尝试使用原始json进行POST请求。
在“身体”选项卡中,我为此身体选择了“原始”:
{
"name": "book"
}
在Node js方面,我正在做res.send(JSON.stringify(req.body))
router.post('/', (req, res, next) => {
res.send(JSON.stringify(req.body));
}
在POSTMAN响应中,我收到:
{"{\n\"name\": \"book\"\n}":""}
预期会出现类似情况
{"name":"book"}
不知道-可能是什么原因?
答案 0 :(得分:1)
您将需要使用Express JSON正文解析器,并使用
进行安装<html>
<h1>hello</h1>
</html>
<p1>hello</p1>
然后:
npm install body-parser;
执行此操作后,JSON数据将被正确解析,并且在将其发送回时将正确呈现。
还要确保在Postman请求中将Content-Type标头设置为“ application / json”(转到“ Headers”,然后添加一个值为“ application / json”的新“ Content-Type”标头)>
这是一个简单的快递应用程序,它将回显任何JSON POST:
const bodyParser = require('body-parser');
app.use(bodyParser.json());
答案 1 :(得分:0)
在我看来,这不是Postman的错,但是您的NodeJS服务两次应用JSON.stringify?
您可以从服务器到控制台记录响应类型以检查其是否已包含json内容吗?
答案 2 :(得分:0)
尝试使用硬编码的json响应,然后使用动态变量
res.json({"name":"book"});
答案 3 :(得分:0)
如果您使用的是Express v4.16.0及更高版本,请尝试在app.listen()
之前添加以下行:
app.use(express.json());
这是Express中的内置中间件功能。它基于body-parser
解析带有JSON有效负载的传入请求。