在Node 4.3中使用Buffer.from时,TypeError Base64不是一个函数

时间:2017-02-15 21:45:53

标签: javascript node.js buffer

我正在使用标准的亚马逊机器映像(linux x64)

在Node 4.3上本地调试lambda函数

当我运行程序时,我在一个函数中出现错误,该函数用于将base64字符串解码为utf-8。错误说

Unhandled rejection TypeError: base64 is not a function
    at Function.from (native)
    at Function.from (native)
    at /home/ec2-user/sass-compiler/lib/compiler.module.js:26:30

我的代码看起来很简单。我已经检查了SO和node 4.3 docs,我的代码似乎是合规的。我可能做错了什么想法?

template() {
        return new Promise((resolve, reject) => {
            let buf = Buffer.from(this._opts.tpl, 'base64').toString('utf-8');
            let _tpl = _.template(buf);
            resolve(_tpl(this._opts.opts));
        });
    }

编辑使用Node LTS 6.9.5

在Windows 10上运行该程序

1 个答案:

答案 0 :(得分:6)

我终于在Stack Overflow上找到了回答这个问题的答案。

NodeJS: How to decode base64 encoded string back to binary?

节点5.3&在下面,您需要使用缓冲区构造函数(即:new Buffer)而不是Buffer.from