0

スライスされたファイルをJavascriptからアップロードするための「プロキシ」として、knoxアマゾンアップローダーを使用しています。response.statusCodeしかし、気付いたのは、200でない場合、nodeJSが例外でクラッシュすることがあるということです(悲しいことに、エラーを正確に特定できない場合があります) 。

assert.js:93 throw new assert.AssertionError({

AssertionError:True==IncomingMessageでfalse。
(http.js:1341:9)IncomingMessage.emit(events.js:61:17)at
HTTPParser.onMessageComplete(http.js:133:23)at Socket.ondata
(http.js:1231:22)at Socket ._onReadable(net.js:683:27)at
IOWatcher.onReadable [コールバックとして](net.js:177:10)

なぜこれが起こるのか誰かが知っていますか?サーバーのクラッシュを回避してその例外をキャッチする方法はありますか?

それが役立つ場合のコードは次のとおりです。

var request = client.request('PUT', '/' + params.fileName + '?partNumber=' +       params.partNumber + '&uploadId=' + params.uploadId, {
    'Content-Length': req.headers['content-length']
});

req.on('data', function(data){
    request.write(data, 'binary');
});
request.on('response', function(response) {
    if (response.statusCode== 200) { 
        console.log('Part '+ params.partNumber + ' inserted with etag: '+    response.headers.etag);
}
}).end();
4

1 に答える 1

0

Socket.destroySoon()これは、ソケットをすぐに閉じないnode.js<v0.5のバグのようです。

https://github.com/joyent/node/issues/1892

于 2011-12-20T12:37:11.287 に答える