【问题标题】:Unirest post request bodyUnirest 发布请求正文
【发布时间】:2020-12-13 09:12:28
【问题描述】:

我希望能够将数据从一台服务器发送到另一台服务器,在同一设备上启动(开始时)。我有这个:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const urlEncodedParser = bodyParser.urlencoded({extended: false});
app.post('/test', urlEncodedParser, (request, response) =>
{
    console.log(request.body);
});
app.listen(9999);
console.log('Server started on port 9999');

const unirest = require('unirest');
unirest.post('http://127.0.0.1:9999/test').headers({'Accept': 'application/json', 'Content-Type': 'application/json'}).send({"test1": 123321, "test2": "321123"})
.then((response) => 
{
    console.log(response.body);
});

看起来合乎逻辑,但 console.log(request.body); 给出了空对象 {} 但在发布请求中我确实使用 .send 发送了一些数据。如何访问请求中的数据?

【问题讨论】:

    标签: node.js express http post unirest


    【解决方案1】:

    您正在使用Content-Type: 'application/json' 发送数据,因此在服务器上您需要连接的中间件不是urlencoded,而是json。另外,body-parser包含在express中,不需要单独连接,可以这样连接必要的中间件:

    服务器:

    const express = require('express');
    
    const app = express();
    
    app.post('/test', express.json(), (request, response) => {
        console.log(request.body);
        response.end('OK');
    });
    
    app.listen(9999, () => console.log('Server started on port 9999'));
    

    客户:

    const unirest = require('unirest');
    
    unirest
        .post('http://127.0.0.1:9999/test')
        .headers({ Accept: 'application/json', 'Content-Type': 'application/json' })
        .send({ test1: 123321, test2: '321123' })
        .then((response) => {
            console.log(response.body);
        });
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 2018-08-18
      相关资源
      最近更新 更多