我将以下JSON字符串发送到我的服务器。

(
        {
        id = 1;
        name = foo;
    },
        {
        id = 2;
        name = bar;
    }
)

在服务器上有这个。

app.post('/', function(request, response) {

    console.log("Got response: " + response.statusCode);

    response.on('data', function(chunk) {
        queryResponse+=chunk;
        console.log('data');
    });

    response.on('end', function(){
        console.log('end');
    });
});

当我发送字符串时,它显示我得到了一个200响应,但其他两个方法从未运行。为什么呢?


当前回答

Const express = require('express'); 让app = express(); app.use (express.json ());

这个app.use(express.json)现在将允许你读取传入的post JSON对象

其他回答

有时不需要第三方库从文本中解析JSON。 有时候你只需要下面的JS命令,先试试它:

        const res_data = JSON.parse(body);

Const express = require('express'); 让app = express(); app.use (express.json ());

这个app.use(express.json)现在将允许你读取传入的post JSON对象

对于那些在req.body中获得空对象的

我忘了设置 header: {"Content-Type": "application/json"} 在请求中。改变它就解决了问题。

对于Express v4+

从npm安装body-parser。

$ npm install body-parser

https://www.npmjs.org/package/body-parser#installation

var express    = require('express')
var bodyParser = require('body-parser')

var app = express()

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

app.use(function (req, res, next) {
  console.log(req.body) // populated!
  next()
})

初学者的错误……我正在使用app.use(express.json());在本地模块中而不是主文件中(入口点)。