【问题标题】:ReactJs and NodeJs JSON parser issue. app.use(bodyParser.json) seems not workingReactJs 和 NodeJs JSON 解析器问题。 app.use(bodyParser.json) 似乎不起作用
【发布时间】:2018-04-21 23:42:24
【问题描述】:

我是 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.use(bodyParser.json()); 你忘记了(),它实际上调用函数来设置中间件。
  • 哦,是的!我错过了。谢谢,@Neil Lunn 现在即使启用了该行,它也会返回数据,但仍显示对象数组而不是实际数据
  • 显示对象数组的原因是因为我有console.log 它带有字符串连接,例如:console.log("Data" + result) 它将返回的json结果转换为字符串。正确的放置方式应该是 console.log("Data",result)

标签: json node.js reactjs express


【解决方案1】:

你可以这样使用我的朋友

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

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

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


 });

【讨论】:

    【解决方案2】:

    正如documentation 中所说的

    你需要这样使用它

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

    你正在使用

    app.use(bodyParser.json)
    

    你错过的地方()

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 2018-09-18
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2019-01-03
      • 2020-07-07
      相关资源
      最近更新 更多