【问题标题】:Nodejs Ferros Buffer error when trying to save to file尝试保存到文件时Nodejs Ferros缓冲区错误
【发布时间】: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


【解决方案1】:

此问题已在最新版本的 feross 缓冲区中修复。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 2018-01-14
    • 2021-06-11
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多