我正在使用 nodejs 将 xlsx 文件逐个单元格地解析,解析后的单元格值将存储在 mongodb 中。
它适用于小于 3MB 的小型 Excel 文件。但在超过 3MB 的情况下,节点应用程序因抛出错误“ CALL_AND_RETRY_2 Allocation failed - process out of memory ”而崩溃。
使用的技术:Nodejs:v0.8.22,MongoDB:2.2.4
系统配置:操作系统:Ubuntu 12.04,内存:4GB,处理器:Intel I5
我将 xlsx 数据解析并存储到 mongodb 的步骤:
- 解压上传的 xlsx 文件。
- 从上传的 xlsx 文件的提取 xml 文件中读取样式、共享字符串、表单、每个表单的单元格和定义的名称,并将这些读取值保存到 JS 对象中。
- 然后通过迭代 JS 对象上的值将读取的值保存到 mongodb 集合中。
根据我的知识,STEP2 导致内存不足错误,因为我将整个 xlsx 值存储在单个 JS 对象中?
请提供一些想法来改变上述过程的方式或其他一些有价值的方式来处理这种情况。
谢谢。