简体   繁体   English

在Node.js中实现HTTP Post方法的首选方法

[英]Preferred approach of implementing HTTP Post Method in Node.js

I found 2 methods to get the Post Body data in Node.js 我发现了两种方法来获取Node.js中的Post Body数据

Below is the 2 webservice Post methods, so which is preferred approach that needs to be followed while fetching the data from client through rest api in Node.js or is there any other approach to read post data. 以下是2种webservice Post方法,因此这是在通过Node.js中的rest api从客户端获取数据时需要遵循的首选方法,或者是否有其他方法可以读取Post数据。

1st Method 第一种方法

//http://localhost:1337/api/postparams1
//Content-Type: application/x-www-form-urlencoded
//param1=complete+reference&param2=abcd+1234
function postparams1(req, res) 
{
    var result = 
    {
        Url : req.originalUrl,
        Method : req.method,
        Param1 : req.body.param1,
        Param2 : req.body.param2
    };

    res.status(200).send(result);
}

2nd Method 第二种方法

//http://localhost:1337/api/postparams2
//{
//    "param1" : "param value 1",
//    "param2" : "param value 2"
//}
function postparams2(req, res) 
{
    var data = '';
    req.setEncoding('utf8');  

    req.on('data', function (chunk) {
        data += chunk;
        console.log("In data : " + data);
    });

    req.on('end', function () {
        console.log("In end : " + data);

        var newObj = JSON.parse(data);

        newObj.Url = req.originalUrl;
        newObj.Method = req.method,

        res.status(200).send(newObj);

    });
}

I think first option is more common beacause needs less code but you need to use Express. 我认为第一种选择是更常见的,因为需要较少的代码,但您需要使用Express。

Express 3 code: Express 3代码:

app.use(express.bodyParser());

app.post('/', function(request, response){
 console.log(request.body.param1);
 console.log(request.body.param2);
});

Express 4 code: Express 4代码:

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.post('/', function(request, response){
 console.log(request.body.param1);
 console.log(request.body.param2);
});

See more info here: 在此处查看更多信息:

Extract post data in node 在节点中提取帖子数据

    var req = https.get("url", function(response) {
          var str = ''
          response.on('data', function (chunk) {
            str += chunk;
          });
          response.on('end', function () {
             console.log(str);
          });
    });
    req.end();
    req.on('error', function(e) {
       console.error(e);
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM