Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在nodejs not express中获取post数据的最佳方法是什么?_Node.js - Fatal编程技术网

Node.js 在nodejs not express中获取post数据的最佳方法是什么?

Node.js 在nodejs not express中获取post数据的最佳方法是什么?,node.js,Node.js,我正在使用nodejs编写一个简单的http代理服务器。当我想要获取post数据时,我发现没有最好的方法,除非使用express。请告诉我如何仅使用nodejs,以正确的方式获取post数据 下面是找到的坏的一个: ... req.setEncoding('utf-8') req.addListener("data", function (postDataChunk) { postData += postDataChunk; }); req.add

我正在使用nodejs编写一个简单的http代理服务器。当我想要获取post数据时,我发现没有最好的方法,除非使用express。请告诉我如何仅使用nodejs,以正确的方式获取post数据

下面是找到的坏的一个:

...
    req.setEncoding('utf-8')
    req.addListener("data", function (postDataChunk) {
        postData += postDataChunk;
    });
    req.addListener("end", function () {

        var objectPostData = querystring.parse(postData);

        console.log(objectPostData)
    });
....
您可以使用一个简单的(BufferList)模块将所有块收集到一个缓冲区中:

var bl = require('bl');

...

req.pipe(bl(function (err, data) {
   console.log('POST data: ' +  data.toString());
}));

香草节点就是这样做的。或者您可以使用更高的抽象框架,如express…不错,如果您不想使用任何框架,它也不错…它是node.js
request
的原始后期数据处理代码。所有的框架都是在内部实现这一点的。