在我的 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/