Javascript Node.js输入数据事件停止

Javascript Node.js输入数据事件停止,javascript,node.js,Javascript,Node.js,我使用此函数获取Node.js应用程序中请求的输入数据: function getData(callback){ req.data = ''; req.receivedDataSize = 0; req.maxDataSize = 5000; req.dataCorrupted = false; req.on('data', function(chunk){ if(req.dataCorrupted === false && chunk.length

我使用此函数获取Node.js应用程序中请求的输入数据:

function getData(callback){
  req.data = '';
  req.receivedDataSize = 0;
  req.maxDataSize = 5000;
  req.dataCorrupted = false;

  req.on('data', function(chunk){
    if(req.dataCorrupted === false && chunk.length < req.maxDataSize && req.receivedDataSize < req.maxDataSize){
      req.data += chunk;
      req.receivedDataChunk += chunk.length;
    } else {
       // throw 413 error.

       req.dataCorrupted = true;
       return;
  });

  req.on('end', function(){
    if(req.dataCorrupted === false){
      callback(null);
    } else {
      callback('input-data-corrupted');
    }

    return;
  });
}
函数getData(回调){ 请求数据=“”; req.receivedDataSize=0; req.maxDataSize=5000; req.dataCorrupted=false; 请求on('data',函数(块){ if(req.datacorrude==false&&chunk.length
我想知道在每个事件回调中如何使用这些“return”语句,当我抛出“return”时,下一个“req.on('data')| | req.on('end')”会发生什么?是否有方法停止事件侦听器停止侦听该事件,或者只是调用“req.end()”停止的正确方法?

在您的示例中,
return
不起任何作用,但会结束函数并返回一个值。它不会阻止流回调。您可以从代码示例中完全删除这些语句,它也会起到同样的作用

如果是流,调用
req.end()
应该终止它,这意味着
req.on('data')
将不再被触发

以下是关于流的非超级有用API文档:

这也是节点中流的有用指南:

在您的示例中,
return
不执行任何操作,但会结束函数并返回一个值。它不会阻止流回调。您可以从代码示例中完全删除这些语句,其效果也一样

如果是流,调用
req.end()
应该终止它,这意味着
req.on('data')
将不再被触发

以下是关于流的非超级有用API文档:

这也是节点中流的有用指南: