使用Express和Request的服务器之间的通信

时间:2018-03-20 10:31:49

标签: node.js express post server request

以下情景: 我有两个服务器,一个服务器一个网站,另一个管理数据库。网站向其服务器发送请求,请求被传递到后端服务器,并且应该返回数据库中的数据集。

我在两台服务器上都使用Express,服务该网站的服务器也有Request包。

第一台服务器上的代码:

request.post({
        headers: {'content-type' : 'application/x-www-form-urlencoded'},
        url:     'http://localhost:8081/getDataset',
        body:    "data="+data
    },
    function(error, response, body){
        if (!error && response.statusCode == 200) {
            console.log(body)
            res.send(body)
        }
    }
)

第二台服务器上的代码:

getFromEigenschaft (req, res) {
    var data = req.body.data
    console.log(req.body) //logs {}

    //do database stuff with data
    return res.status(200).send(dataSet)

}

在第二台服务器上,req.body是一个空对象。我做错了什么?

1 个答案:

答案 0 :(得分:0)

找到答案: 正如我想的那样,可以将body对象设置为JSON,但JSON选项必须设置为true:

request.post({
        headers: {'content-type' : 'application/x-www-form-urlencoded'},
        url:     'http://localhost:8081/getDataset',
        json:   true,
        body:    data
    },
    function(error, response, body){
        if (!error && response.statusCode == 200) {
            console.log(body)
            res.send(body)
        }
    }
)