首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js抛出“未定义btoa”错误

Node.js抛出“未定义btoa”错误
EN

Stack Overflow用户
提问于 2014-04-16 10:27:12
回答 11查看 244.5K关注 0票数 362

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

然而,由于某些原因,它仍然不会工作。

代码语言:javascript
复制
console.log(btoa("Hello World!"));

^应该将"SGVsbG8gV29ybGQh“输出到控制台,但我得到的却是错误:

未定义

btoa。

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

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-04-16 10:31:44

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

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

代码语言:javascript
复制
console.log(Buffer.from('Hello World!').toString('base64'));

反转(假设您解码的内容是一个utf8字符串):

代码语言:javascript
复制
console.log(Buffer.from(b64Encoded, 'base64').toString());

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

票数 796
EN

Stack Overflow用户

发布于 2017-12-19 23:38:31

这里发布的解决方案不支持非ascii字符(例如,如果您计划在Node.js和浏览器之间交换base64 )。为了使它工作,您必须将输入文本标记为“二进制”。

代码语言:javascript
复制
Buffer.from('Hélló wórld!!', 'binary').toString('base64')

这将为您提供SOlsbPMgd/NybGQhIQ==。如果你在浏览器中制作atob('SOlsbPMgd/NybGQhIQ=='),它会以正确的方式解码它。它也可以通过以下方式在Node.js中正确运行:

代码语言:javascript
复制
Buffer.from('SOlsbPMgd/NybGQhIQ==', 'base64').toString('binary')

如果你不做“二进制部分”,你将错误地解码特殊字符。

我拿到了from the implementation of the btoa npm package

票数 112
EN

Stack Overflow用户

发布于 2016-07-19 06:31:32

我的团队在将Node与React Native和PouchDB一起使用时遇到了这个问题。这就是我们如何解决它的.

NPM安装缓冲区:

代码语言:javascript
复制
$ npm install --save buffer

确保Bufferbtoaatob作为全局变量加载:

代码语言:javascript
复制
global.Buffer = global.Buffer || require('buffer').Buffer;

if (typeof btoa === 'undefined') {
  global.btoa = function (str) {
    return new Buffer(str, 'binary').toString('base64');
  };
}

if (typeof atob === 'undefined') {
  global.atob = function (b64Encoded) {
    return new Buffer(b64Encoded, 'base64').toString('binary');
  };
}
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23097928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档