2013-09-30 3 views
0

를 끊고 난 아마존 S3에 대한 NodeJS 모듈 아래에 오류가 발생했습니다 longjohn를 활성화 한 후 Knox녹스 S3 - NodeJS/ExpressJS 오류 : 소켓

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: socket hang up 
    at SecurePair.error (tls.js:934:23) 
    at CleartextStream.read [as _read] (tls.js:432:17) 
    at CleartextStream.Readable.read (_stream_readable.js:320:10) 
    at EncryptedStream.write [as _write] (tls.js:345:25) 
    at doWrite (_stream_writable.js:219:10) 
    at writeOrBuffer (_stream_writable.js:209:5) 
    at EncryptedStream.Writable.write (_stream_writable.js:180:11) 
    at write (_stream_readable.js:573:24) 
    at flow (_stream_readable.js:582:7) 
    at Socket.pipeOnReadable (_stream_readable.js:614:5) 
    at Socket.EventEmitter.emit (events.js:92:17) 

를, 나는 오류가 표시 이미지의 노선에 있다고 말할 수있다 Amazon S3에서.

exports.image = function(req, res) { 
    var type = req.params.type; 
    var id = req.params.id; 
    var file = req.params.file; 
    var url = '/' + type + '/' + id + '/' + file; 


    var data = ''; 
    knoxClient.get(url).on('response', function(s3res) { 
     s3res.setEncoding('binary'); 
     s3res.on('data', function(chunk){ 
      data += chunk; 
     }); 
     s3res.on('end', function() { 
      res.write(data, encoding='binary'); 
      res.end(); 
     }); 
    }).end(); 
}; 

서버가 중단되지 않도록 오류를 처리하는 방법은 무엇입니까?

+0

오류 지점은 어디에 있습니까? https 서버와 관련이있는 것처럼 보입니다. 그 코드를 보여줄 수 있습니까? – user568109

+0

'longjohn'을 활성화 한 후에 오류가 발생하면 Amazon S3의 이미지가 표시됩니다. :-( –

답변

0

서버 소켓의 'error' 이벤트에 처리기를 추가하는 것을 잊었을 가능성이 큽니다.

스택에 코드에 대한 참조가없는 이유는 node.js의 이벤트 특성 때문입니다. 이벤트가 발생하면 스택이 처음부터 다시 시작됩니다. 이 때문에 비동기 호출을 디버그하는 것이 약간 어렵습니다.

개발 중에 longjohn을 사용해 볼 수 있습니다.

+0

감사합니다.'longjohn'에 대해서'require ('longjohn'); 충분합니까? 아니면 사용하기 위해 코드 줄이 필요합니다. 감사합니다. –

+0

주 파일의 시작 부분에 필요하면됩니다. 스택 추적이 훨씬 더 유용 해집니다. 메모리 사용량이 증가하고 서버 속도가 약간 느려집니다. –

+0

Amazon S3의 Knox S3 모듈에있는 오류의 위치를 ​​파악했습니다. –