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

2024-03-03

我正在使用nodejs使用模块“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 文件。

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


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

针对你的问题,我的建议是:

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NODE.JS:致命错误 - JS 分配失败 - 解析大型 excel 文件时内存不足 的相关文章

随机推荐

  • 从字符串值设置 Android 图像

    目前我正在 Android 应用程序中绘制 PNG 图像 如下所示 ImageView image new ImageView context image setImageDrawable context getResources getD
  • 向 FormBuilder 添加一个方法,该方法调用呈现部分的辅助方法

    所以我有这个辅助方法 对吧 def table form field name or options nil args block render partial gt snippets table form field locals gt
  • 如何从 webview 打开 safari 移动应用程序中的链接

    这里有很多主题 但它们都需要本机代码交互才能工作 就我而言 有必要能够直接从 URL 执行此操作 而无需与我的移动应用程序进行任何交互 I tried a href target blank Open Google in Safari a
  • 创建非活动 C# WPF 窗口的缩略图

    我在这里浏览了许多主题 并通过谷歌搜索了信息 但没有找到与我的问题相关的任何内容 我想要做的是拥有它 以便当用户启动应用程序时 主窗口 不是 MDI 将打开并显示四个图像框 每个图像框显示当他们单击它时将打开的表单图像 一旦选定的表单打开并
  • 从 C# 运行带有参数的命令行?

    可以使用如下命令在 C 中运行命令行 process new Process process StartInfo FileName command process Start 问题是命令字符串是否包含参数 例如 C My Dir MyFil
  • Ada95 中的线程和信号量

    如何在 Ada95 中使用线程 我可以使用哪些函数来创建 销毁 停止和启动它们 我如何在这种语言中使用信号量 并发性内置于该语言中 因此您可以为任务 即线程 和受保护对象 即比信号量 互斥体 条件变量更强大 使用特定的 Ada 语法 这使得
  • 如何在按钮上添加图像(左)和文本

    如何在按钮上添加图像 左 和文本 举例说明 use android drawableLeft drawable image 在你的布局 xml 中 你也可以从代码中做到这一点 Drawable icon getContext getReso
  • 未调用委托方法“clickedButtonAtIndex:”

    我使用以下代码创建了一个带有两个按钮的警报视图 UIAlertView alertView UIAlertView alloc initWithTitle title message msg delegate nil cancelButto
  • 已删除的类会丢弃错误消息未知>:0:错误:没有这样的文件或目录:

    因此 我和一些朋友正在从事 bitbucket 项目 并且已经意识到 bitbucket 有时不会同步所有文件 但事情是这样的 我继续工作并创建了一个类 我基本上复制了一个旧的视图控制器 称为WelcomescreenViewControl
  • 如何在Unity中制作2D动画

    因此 我正在 Unity 中为 Android 和 iOS 儿童制作 3D 游戏 但我是游戏开发新手 规划资源确实很困难 我们需要创建 2D 动画 纸质角色 并且角色必须具有出色的动画细节 我们一直在考虑几种选择 我们可以创建逐帧动画 但我
  • 使用 AWS Cloudfront 的 hls.js CORS 存在 Cookie 问题

    我正在尝试使用 Cloudfront HLS 功能设置视频流 但我无法让 Hls js 在请求中发送我的凭据 cookie 我已经将 Cloudfront 配置为转发 cookie 和转发访问控制标头 我还设置了 S3 CORS 策略以包括
  • 什么时候在 Java 中使用可变参数?

    我害怕可变参数 我不知道用它们做什么 另外 让人们想传递多少参数就感觉很危险 适合使用它们的上下文示例是什么 Varargs are useful对于任何需要处理的方法不确定数量的物体 一个很好的例子是String format http
  • 使用正则表达式 python 查找电子邮件[重复]

    这个问题在这里已经有答案了 我想在文本文件中查找有效的电子邮件地址 这是我的代码 email re findall r a zA Z w line 但我的代码显然不包含 符号之前有数字的电子邮件地址 我的代码无法处理没有有效结尾的电子邮件地
  • docker build 和 docker run 后如何访问 my falcon 应用程序?

    作为后续问题Docker运行找不到可执行文件 uwsgi https stackoverflow com questions 49073975 docker run cannot find executable uwsgi 我已经成功执行了
  • 聚焦于 UISearchBar 但键盘不出现

    我已经阅读了很多关于如何在打开搜索视图时聚焦搜索栏以使键盘出现的解决方案 所有这些都是这样的 searchBar becomeFirstResponder mine is self searchDisplayController searc
  • 使用 ARC 在其自己的完成块中引用 NSOperation 对象

    我在将一些 NSOperation 代码转换为 ARC 时遇到困难 我的操作对象使用一个完成块 该完成块又包含一个更新主线程上的 UI 的 GCD 块 因为我从操作对象自己的完成块内部引用操作对象 所以我使用 weak 指针来避免内存泄漏
  • 具有字符串分类值的 OneHotEncoder

    我有以下 numpy 矩阵 M a 5 0 2 a 2 1 3 as b 1 2 3 as M np array M 我想对分类值进行编码 a b as 我尝试使用它进行编码OneHot编码器 http scikit learn org s
  • 使用 split/join 将字符串替换为数组

    我正在尝试替换的值item与数组中的值arr 但只有当我使用时我才会得到 arr 1 arr 2 如果我让arr 返回abcdefg 我是 PHP 程序员 我有一个最小的 JavaScript 的概念 有人能给我指点一下吗 var item
  • 如何将图像转换为字符流

    我发现图像可以存储为某种字符串 举个例子 我已经包含了一个带有图像的 ms word 部分 我保存了一个带有图像的word文件并将其保存为xml格式 当我在记事本中打开 xml 文件时 我得到以下部分 它必须是存储为某种文本流的图像 在 n
  • NODE.JS:致命错误 - JS 分配失败 - 解析大型 excel 文件时内存不足

    我正在使用nodejs使用模块 jsxlsx async 解析xlsx文件 并且值将存储在mongodb中 我的代码 xlsx file function err wb if err handling err get data array