NODE.JS:致命错误 – JS分配失败 – 处理内存不足,同时parsing大型的Excel文件

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

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); }); }); 

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

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

这适用于更小的xlsx文件,但我想分析大于50MB的xlsx文件。

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

我以前有过类似的问题。 我需要从txt文件中读取一个巨大的JSON对象,但是这个过程因为内存不足而被终止。 关于这个问题,我的解决scheme是将这个庞大的文件分成两个文件。

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

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

     node --max-old-space-size=8192 server.js 
  2. 如果#1不起作用,请尝试使用此lib逐行读取xlsx文件: https : //github.com/ffalt/xlsx-extract

  3. 如果#1,#2不起作用,请尝试https://github.com/extrabacon/xlrd-parser