为什么我们需要 res.on('data'... 为 POST 定义,即使我们没有对数据做任何事情?

Ric*_*rdB 5 javascript http node.js

发现此问题调试代码,其中以下不起作用:

var req = http.request(options,function(res){
            // res.on('error',cb(err));
            res.on('end',function(){
                cb();
            });
        });
Run Code Online (Sandbox Code Playgroud)

但是,以下确实有效:

       var req = http.request(options,function(res){
            // res.on('error',cb(err));
            res.on('data',function(chunk){
                //why do we need this?
            });
            res.on('end',function(){
                cb();
            });
        });
Run Code Online (Sandbox Code Playgroud)

Vas*_*iak 5

res变量是一个可读流。如果您单击链接并向下滚动到“结束”活动,您可能会发现以下内容:

请注意,除非数据被完全消耗,否则“结束”事件不会触发。

通过添加“数据”事件处理程序,您可以使用数据。