ReactJs和NodeJs的JSON解析器问题.use(bodyParser.json)似乎不起作用



我是ReactJs、NodeJs、express等所有Javascript东西的初学者。我正在尝试下面的代码示例来学习基础知识。

我的问题是当我评论掉

app.use(bodyParser.json);

我可以看到返回的数据。但如果取消注释,则不会显示返回数据。无论如何,返回的数据是以对象数组的形式出现的,如下所示。

[object Object],[object Object],[object Object],[object Object]

如何解析JSON以查看实际数据?我真的需要指定以下两行来获取JSON数据吗?如果是,该怎么做?

app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json);

以下是完整的代码

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
var Client = require('node-rest-client').Client;
var client = new Client();
const app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(cors());
app.use(bodyParser.json);
app.post('/api',(req,res)=>{
client.get("https://url", function (data, response) {
// parsed response body as js object
console.log("DATA : "+data);
res.json({msg:true,data:data});
// raw response
//console.log("RESPONSE: "+response);
});
});
app.listen(3001,()=>{
console.log("listning to port 3001");
})

以下是package.json文件中的依赖版本

"dependencies": {
"body-parser": "^1.18.2",
"cors": "^2.8.4",
"express": "^4.16.2",
"node-rest-client": "^3.1.0"

}

高度感谢您的反馈

我的朋友,你可以这样使用它

app.post('/api',(req,res)=>{
client.get("https://url", function (data, response) {
console.log(req.body);
res.json({msg:true,data:req.body});

});

正如文档中所说

你需要像这个一样使用它

// parse application/json
app.use(bodyParser.json())

您正在使用

app.use(bodyParser.json)

您错过的地方()

最新更新