使用node.js上传多个文件时的ERR_EMPTY_RESPONSE

时间:2015-05-21 18:00:22

标签: angularjs node.js express asyncfileupload

我正在尝试使用node.js在ftp上传多个文件。我的上传开始成功,我看到文件上传到服务器位置,但在一段时间没有收到成功消息后,在浏览器端我收到此错误“错误324(net :: ERR_EMPTY_RESPONSE):但在服务器中我的文件仍然在ftp上传。

以下是该过程的上传日志:

uploaded Audio >>1 >>1572528
uploaded Audio >>1 >>1637949
uploaded Audio >>1 >>1703388
uploaded Audio >>1 >>1768865
uploaded Audio >>1 >>1834167
PUT /user/album/deliverAudio - - ms - -   
               // as soon as this line execute I get EMPTY_RESPONSE_ERROR in browser
uploaded Audio >>1 >>1899552

以下是该流程的部分代码:

sync.map(req.body.tracks, function(track, callback) {
    var data = '';
    var filename = '';
    var readableAudioStream = fs.createReadStream(track.trackpath.track_path);
    c.put(readableAudioStream,track.filename, function(err) {
      if (err) {
        return callback(err);
      }
      callback(null);
    });
    readableAudioStream.on('data', function(chunk) {
      data += chunk;
      console.log('uploaded Audio >>'+track.track_no+' >>'+data.length);
    });
}, function(err, results) {
  console.log('audio error');
  console.log(err);
  done(err);
});

1 个答案:

答案 0 :(得分:0)

我认为你可能会对HTTP请求给出一个NULL / undefined响应。尝试在响应中发送实际有效负载。

尝试

c.put(readableAudioStream,track.filename, function(err) {
  if (err) {
    return callback(err);
  }
  callback(null, { success: true }); // Give an actual payload response from the completion of the upload
});

然后,处理请求的结果:

function (err, results) {
   if (err) res.send(500, err);
   res.json(results);
}