【问题标题】:ERR_EMPTY_RESPONSE on multiple file upload with node.js使用 node.js 上传多个文件时的 ERR_EMPTY_RESPONSE
【发布时间】:2015-05-21 18:00:21
【问题描述】:

我正在尝试使用 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);
});

【问题讨论】:

  • 什么是c.put()?如果它将数据从流上传到其他地方并在完成后调用其回调,那么您可能不应该在那里有 data 事件处理程序。
  • in c.put c 是我的 ftp 对象,它是 node-ftp,put 是它的方法。
  • 即使在删除数据事件处理程序后,我也会遇到同样的错误。

标签: angularjs node.js express asyncfileupload


【解决方案1】:

我认为您可能对 HTTP 请求给出了 NULL/未定义的响应。尝试在响应中发送实际有效负载。

试试

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);
}

【讨论】:

  • 我必须把它放在哪里?
  • 我在Async.waterfall这一步之后还有一步,那我应该通过什么?
  • 我不完全确定我可以在没有完整上下文的情况下回答这个问题,但我的观点是您应该尝试发送实际的有效负载响应而不是未定义/空值。只需发送任何东西,我认为这可能会解决它。如果您在下一步中处理results 参数,它应该获取{ success: true } 对象并将其与res.json(results) 一起发送。
猜你喜欢
  • 2019-06-15
  • 2020-04-05
  • 2018-01-28
  • 2012-02-04
  • 2017-08-29
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多