我有一个非常大的数组,包含2000000条记录。当我尝试将该数组发送到节点中的CSV函数时,它会给我一个内存外异常。
res.status(200).csv(BIGARRAY, true);
处理这个问题的最佳方法是什么?感谢您的帮助。提前谢谢。
可能最简单的解决方案是向其投入更多内存
你可以用Node.js这样做:
node --max-old-space-size=8192 fileName.js
并不断提高极限,直到它跑完为止。
否则,您将不得不将包含200000条记录的数组分解为更小的数组,并在每个数组上运行.csv
函数。
如何获得数组?通过某种溪流?我建议您使用流来避免内存泄漏。
readableStream.pipe(res);
因为express响应是一个可写流,所以您可以简单地通过管道传输并让它处理所有内存问题。