【发布时间】:2015-08-25 17:03:06
【问题描述】:
我想在我的应用程序中使用ferros buffer。 但我在尝试将缓冲区保存到文件时收到错误消息。这是我的代码: 请帮忙检查...
var fs = require('fs');
var B = require('buffer/').Buffer;
var buffin = fs.readFileSync('calibri.ttf');
var b64 = buffin.toString('base64');
var bf = new B(b64,'base64');
fs.writeFile('calibro.ttf', bf, function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
这是我的错误信息:
D:\Project\testbuffer\node_modules\buffer\index.js:703
return String.fromCharCode.apply(String, res)
^
RangeError: Maximum call stack size exceeded
at utf8Slice (D:\Project\testbuffer\node_modules\buffer\index.js:703:30)
at Buffer.toString (D:\Project\testbuffer\node_modules\buffer\index.js:412:3
8)
at fs.js:1079:63
at FSReqWrap.oncomplete (fs.js:95:15)
请帮忙,
【问题讨论】:
-
mmmm,这应该去他们的 GitHub 问题部分
-
出于好奇,当 node 已经拥有原始 Buffer 实现时,为什么要为 browser 使用 Buffer 实现?另外,您可能需要检查this existing issue。
-
@mscdex 我想为浏览器使用缓冲区类型的原因是,有一个节点模块我想迁移到浏览器,所以它不需要 nodejs。 (仅限客户端)。在那个函数中有缓冲区类型的操作。所以我还需要为浏览器使用缓冲区实现。我用fs读写只是为了检查结果。
-
@mscdex 我会在 github 上查看问题,非常感谢。
标签: javascript node.js browserify fs