Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NODE.JS:致命错误-JS分配失败-解析大型excel文件时,进程内存不足_Excel_Node.js_Mongodb - Fatal编程技术网

NODE.JS:致命错误-JS分配失败-解析大型excel文件时,进程内存不足

NODE.JS:致命错误-JS分配失败-解析大型excel文件时,进程内存不足,excel,node.js,mongodb,Excel,Node.js,Mongodb,我使用nodejs解析带有模块“jsxlsx_async”的xlsx文件,值将存储在mongodb中。 我的代码: 使用:Nodejs:v0.10.25,MongoDB:v2.2.6, 操作系统:win8,内存:6GB 我的步骤: 1.读取上传的xlsx文件,并将这些读取值保存到JS对象中。 2.通过迭代JS对象上的值,将读取的值保存到mongodb集合中 这对较小的xlsx文件很好,但我想解析大于50MB的xlsx文件 我的问题是将整个xlsx值存储在单个JS对象中。 请提供一些更好的解决方案

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

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

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

这对较小的xlsx文件很好,但我想解析大于50MB的xlsx文件

我的问题是将整个xlsx值存储在单个JS对象中。 请提供一些更好的解决方案。
有没有更好的方法逐行读取xlsx并在读取一行时立即保存值?

我以前也遇到过类似的问题。我需要从一个txt文件中读取一个巨大的JSON对象,但由于内存不足,进程被终止。关于这个问题,我的解决方案是将这个巨大的文件分成两个文件

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

  • 尝试增加v8发动机的内存限制。示例(8192表示8GB):

  • 如果#1不起作用,请尝试使用此库逐行读取xlsx文件:

  • 如果#1和#2不起作用,请尝试


  • #1不工作,因为我只想使用最多3gb的RAM#2需要1)安装.NET Framework 2.0 SDK,2)安装Microsoft Visual Studio 2005,我不想在云服务器上这样做#3不在windows上工作。有人知道如何在windows上使用/安装模块“xlrd解析器”吗?谢谢,模块“xlsx extract”在安装visual studio时运行良好。
        xlsx(file, function(err,wb){
            if (err){
                //handling err
            }
            //get data array 
            wb.getSheetDataByName('Sheet1', function(err,data){
                if (err){
                    //handling err
                }
                //handling data
                console.log(data);
            });
        });
    
    node --max-old-space-size=8192 server.js