Javascript Node.js输入数据事件停止
我使用此函数获取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
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文档:
这也是节点中流的有用指南: