NODE.JS:FATAL ERROR- JS分配失败 – 解析大型excel文件时,内存不足

我正在使用nodejs来解析xlsx文件,并使用模块“jsxlsx_async”,并将值存储在mongodb中。
我的代码

xlsx(file,function(err,wb){
        if (err){
            //handling err
        }
        //get data array 
        wb.getSheetDataByName('Sheet1',data){
            if (err){
                //handling err
            }
            //handling data
            console.log(data);
        });
    });

使用:Nodejs:v0.10.25,MongoDB:v2.2.6,
操作系统:win8,RAM:6GB

我的步骤:
1.读取上传的xlsx文件并将这些读取值保存到JS对象中。
2.通过迭代JS对象上的值,将读取的值保存为mongodb集合。

这可以用较小的xlsx文件正常工作,但是我想解析大于50MB的xlsx文件

我的问题是我将整个xlsx值存储在单个JS对象中。
请为解决方案提供一些更好的想法。
有没有更好的方法来读取xlsx行,并一次保存一行行被读取?

解决方法

之前我有类似的问题。我需要从txt文件中读取一个巨大的JSON对象,但是由于内存不足而导致进程死机。关于这个问题,我的解决方案是把这个巨大的文件分成2个文件

关于你的问题,我的建议是:

>尝试增加v8引擎的内存限制。 https://github.com/joyent/node/wiki/FAQ示例(8192表示8GB):

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

>如果#1不起作用,请尝试使用此lib:https://github.com/ffalt/xlsx-extract逐行阅读xlsx文件
>如果#1,#2不工作,请尝试https://github.com/extrabacon/xlrd-parser

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...