邮递员对原始JSON帖子发送奇怪的响应(节点js)

时间:2019-09-23 12:33:32

标签: node.js json postman

我正在尝试使用原始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"}

不知道-可能是什么原因?

4 个答案:

答案 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有效负载的传入请求。