我在ExpressJS Web应用程序中使用Knox S3插件来显示在Amazon S3中上传的图像。显示图像时,我有时会出现以下错误。我对错误一无所知。导致错误的原因是什么?
events.js:72
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at errnoException (net.js:884:11)
at TCP.onread (net.js:539:19)
这是我从Amazon S3渲染图像的方式:
var data = '';
client.get(url).on('response', function(s3res) {
s3res.setEncoding('binary');
s3res.on('data', function(chunk){
data += chunk;
});
s3res.on('end', function() {
res.contentType('image/jpg');
res.write(data, encoding='binary');
res.end();
});
}).end();
答案 0 :(得分:0)
由于流可能发生排放事件,因此您写入的速度可能比其他流能够读取的速度快。你应该使用管道为你处理这个:
s3res.pipe(response);
http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
这是来自nodejs文档: 此方法从可读流中提取所有数据,并将其写入提供的目标,自动管理流,以便目标不会被快速可读的流淹没。