我遇到了通过节点代理流式传输xlsx文件的问题,因为它消耗了大量内存。该文件大约为11MB,但在从Java服务收到响应时占用大约700MB的内存。我不确定导致这种情况的是什么,因为我正在做的就是直接通过如下方式管理响应:
var express = require('express');
var app = express();
var request = require('request');
app.all('/api/*', function (req, res) {
var options = transformRequest(req);
var method = req.method.toLowerCase();
request[method](options)
.on('response', function (response) {
logger.info('method=' + method,
'nodeEndpoint=' + req.originalUrl,
'mappedServiceUrl=' + options.url,
'responseStatusCode=' + response.statusCode);
res.writeHead(response.statusCode, response.headers);
if (response.statusCode > 399) {
logger.error(method, options.url, response.statusCode);
}
})
.on('error', function (err) {
handleError(err, res);
})
.pipe(res);
});
是否有这样的东西,或者看到这么小的文件有如此高的内存使用率是否正常?