ReactJs和NodeJs JSON解析器问题。 app.use(bodyParser.json)似乎无法正常工作

时间:2017-11-09 04:44:01

标签: json node.js reactjs express

我是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"

}

非常感谢您的反馈

2 个答案:

答案 0 :(得分:0)

您可以像我的朋友一样使用它

app.post('/api',(req,res)=>{

client.get("https://url", function (data, response) {

    console.log(req.body);
    res.json({msg:true,data:req.body});


 });

答案 1 :(得分:0)

documentation

中所述

您需要像这样使用它

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

您正在使用

app.use(bodyParser.json)

您错过()的地方