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 导出就很慢。

阅读 2.8k
1 个回答

自己解决了问题,回来自己回答一下。

相关文章

网络差时,写入 TCP Socket 输出缓冲区的速度较慢,同时 Node.js 端没有做 Backpressure 处理,导致响应返回时被截断,报错 net:ERR_INCOMPLETE_CHUNKDED_ENCODING .

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题