非常大的CSV数组和对节点中的rest api的响应



我有一个非常大的数组,包含2000000条记录。当我尝试将该数组发送到节点中的CSV函数时,它会给我一个内存外异常。

res.status(200).csv(BIGARRAY, true);

处理这个问题的最佳方法是什么?感谢您的帮助。提前谢谢。

可能最简单的解决方案是向其投入更多内存

你可以用Node.js这样做:

node --max-old-space-size=8192 fileName.js 

并不断提高极限,直到它跑完为止。

否则,您将不得不将包含200000条记录的数组分解为更小的数组,并在每个数组上运行.csv函数。

如何获得数组?通过某种溪流?我建议您使用流来避免内存泄漏。

readableStream.pipe(res);

因为express响应是一个可写流,所以您可以简单地通过管道传输并让它处理所有内存问题。

最新更新