Node.js引发“未定义btoa”错误

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

但是,由于某种原因,它仍然无法正常工作。

console.log(btoa("Hello World!"));

^应该向控制台输出“ SGVsbG8gV29ybGQh”,但是,我收到错误消息“未定义btoa”。

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

老丝2020/03/23 14:22:21

也许您不再需要它,但是如果有人使用节点需要它:https : //www.npmjs.com/package/btoa

2020/03/23 14:22:21

我了解这是节点应用程序的讨论点,但是出于在节点服务器上运行的通用JavaScript应用程序的兴趣(这是我到达这篇文章的方式),我一直在研究通用/同构React应用程序。建筑,这个包装abab对我有用。实际上,这是我能找到的唯一可行的解​​决方案,而不是使用也提到的Buffer方法(我遇到 TypeScript问题)。

(此包由jsdom所使用,而window又由该包使用。)

回到我的观点;基于此,也许如果该功能已经像您提到的那样已经作为npm软件包编写,并且具有基于W3规范的自己的算法,则可以安装和使用该abab软件包,而不必编写自己的可能会或可能不会根据编码准确。

- 编辑 -

今天,我开始使用package编码出现奇怪的问题(不确定为什么现在开始发生)abab大部分时间似乎正确编码,但有时在前端它编码不正确。花了很长时间尝试调试,但是base-64根据建议切换到软件包,它立即起作用。绝对似乎取决于的base64算法abab