nodejs express 导出 csv 慢
问题描述
使用 express 的 res.write 来写 csv 数据,数据已经从数据库读出来了(用的是 mongodb 可读流),但是 chrome 卡在即将开始下载一分半之后才开始有数据下载下来,会是什么原因。
相关代码
stream.on('data', data => {
let finalData = processData(data);
let _data = JsonToArray(finalData, fields).join(',');
// console.log("Data:", _data.toString());
res.write(_data + '\n');
});
stream.on('error', err => {
res.end(err.message || err);
logger.error("Export Failed:", err.message || err);
});
stream.on('end', () => {
logger.info("Export finished after:", (new Date).getTime() - start, "ms");
res.end();
});
本地环境局域网导出没问题,测试服务器放在 aws 导出就很慢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自己解决了问题,回来自己回答一下。
相关文章
网络差时,写入 TCP Socket 输出缓冲区的速度较慢,同时 Node.js 端没有做 Backpressure 处理,导致响应返回时被截断,报错 net:ERR_INCOMPLETE_CHUNKDED_ENCODING .