在我的 node.js 应用程序中,我做了一个 npm install btoa-atob 以便我可以使用 btoa()atob() 函数,它们在客户端 javascript 中是 native 的,但由于某种原因没有包含在 node.js 中。新目录出现在我的 node_modules 文件夹中,该文件夹本身与 app.js 一起位于根目录中。然后我确保在根目录下的 package.json 文件中添加 btoa-atob 作为依赖项。
但是,由于某种原因,它仍然不起作用。

console.log(btoa("Hello World!"));
^ 应该将“ SGVsbG8gV29ybGQh ”输出到控制台,但相反,我得到了错误:

我没有正确安装吗?我忽略了什么?

最佳答案

'btoa-atob' 模块不导出编程接口(interface),它只提供命令行实用程序。

如果您需要转换为 Base64,您可以使用 Buffer:

console.log(Buffer.from('Hello World!').toString('base64'));

反向(假设您正在解码的内容是 utf8 字符串):
console.log(Buffer.from(b64Encoded, 'base64').toString());

注意:在 Node v4 之前,使用 new Buffer 而不是 Buffer.from

关于Node.js 抛出 "btoa is not defined"错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23097928/

10-13 09:06