代碼如下:
var agentReq = http.request(options, function (agentRes) {
var chunks = [];
if (agentRes.statusCode !== 200) {
failcb('[util] Failed to request url:' + url);
return;
}
var dataSize = 0;
//agentRes.setEncoding('binary'); // <--- 加上這行就會crash
agentRes.on('data', function (chunk) {
chunks.push(chunk);
dataSize += chunk.length;
});
agentRes.on('end', function () {
var fullData = Buffer.concat(chunks, dataSize);
fullData = aesDec(fullData);
fullData = jsonDec(fullData);
successcb(fullData);
});
});
agentReq.on('error', function (e) {
failcb(e.message);
});
if (dataObj) {
var sendData = jsonEnc(dataObj);
sendData = aesEnc(sendData);
agentReq.write(sendData);
}
agentReq.end();
此function在第2次call的時候拋出異常。
報錯信息爲buf.copy
^
,TypeError: Object (此處省略一大堆亂碼)
但只要將標註的那行註釋掉就正常了。問題原因不明。