0

我使用 knox amazon 上传器作为“代理”从 Javascript 上传切片文件。但是注意到的是,有时(很遗憾,有时我无法准确识别错误)当response.statusCode不是 200 时,nodeJS 在异常时崩溃:

assert.js:93 抛出新的 assert.AssertionError({

AssertionError: true == false 在 IncomingMessage。
(http.js:1341:9) 在 IncomingMessage.emit (events.js:61:17) 在
HTTPParser.onMessageComplete (http.js:133:23) 在 Socket.ondata
(http.js:1231:22) 在 Socket ._onReadable (net.js:683:27) 在
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

这看起来是 node.js < v0.5 中的一个错误,Socket.destroySoon()它不会立即关闭套接字。

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

于 2011-12-20T12:37:11.287 回答