javascript - 在 NodeJS 中拆分大 base 64 数据崩溃
问题描述
嘿,我正在尝试将split
一个 400mb 的文件(缓冲区变成一个字符串)分成 4 个块。NodeJS 因此错误而崩溃:
“无效的数组长度分配失败 - JavaScript 堆内存不足”
const base64Data = Buffer.from(buffer, "binary").toString("base64");
console.log(base64Data.length); // length = 436875456
console.log(base64Data.split("")); // results in crash
我理解错误,我只是找不到从长字符串创建数组并将其分成块的解决方案。
提前谢谢了
解决方案
可能这可以帮助你。您只需要添加 [1]。如果您还有问题,请告诉我。
console.log(base64Data.split("")[1]);
例如这里的结果是一个 64 位的数据。
var result =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3
VL4AAAACXBIWXMAAAsTAAALEwEA mpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC";
alert(result.split(',')[1]);
alert(result.substr(result.indexOf(',') + 1));
推荐阅读
- openstack - 是否有基于 Xen 与 KVM 以 PV 模式运行的 OpenStack 发行版?
- sql-server - (SQL) 尝试创建一个触发器,通常将数据映射到历史表并进行错误检查
- php - PHP PDO 无法让 MySQL 创建过程和更改表?
- javascript - 正则表达式从日志文件中解析一行
- java - 如何更改 Java 中的分隔符?
- php - 无法访问我的 Symfony 控制器 @Route
- python - Telegram bot 未从 webhook 获取更新
- java - 有人请解释Java代码语法中的收缩
- node.js - 在多个浏览器上运行 javascript 测试
- tsql - 在 T-SQL 中强制执行不区分大小写的列引用