我有一些大型Javascript对象,我想将其编码为base-64,以用于AWS动态`

let objStr = new Buffer(JSON.stringify(obj), 'ascii');
new Buffer(objStr, 'base64').toString('ascii') !== objStr

我尽量让这件事尽可能简单.

如何对JSON进行base-64编码并将其安全解码回原始值?

推荐答案

您误解了Buffer(str, [encoding])构造函数,encoding告诉构造函数创建str使用了什么编码,或者构造函数应该使用什么编码将str解码为字节array.

基本上,Buffer类代表字节流,只有当您将其从/转换为字符串时,编码才会进入上下文.

您应该改为使用buffer.toString("base64")来获得缓冲区内容的base-64编码.

let objJsonStr = JSON.stringify(obj);
let objJsonB64 = Buffer.from(objJsonStr).toString("base64");

Node.js相关问答推荐

在对象的嵌套数组中使用$lookup,创建多个记录作为响应,mongodb

TS 后端开发:prismagenerate找不到已安装的@tsed/prisma包

使用 Google Drive API 按文件夹 ID 检索文件夹的内容

如何在docker容器上正确安装nodejs?

将图像添加到多个产品的条带 checkout 会话中

在生产环境中,Nest实例启动时抛出不完整的导入错误

NodeJS `request` 库无法通过 multipart-form-data 将文件发布到 dotnet 服务器

错误:0308010C:try 通过 Github 推送部署到 firebase 托管时出现数字

如何修改这个flake.nix,这样我就不用每次加载环境都加载nix包了

TypeError:在使用 Jest、Supertest、Express、Typescript 进行测试时无法读取未定义的属性(读取listen)

module.exports=require('other') 和临时变量有什么区别?

Electron 模板(Typescript + Webpack)中的这个 Electron Forge ERROR 是什么?

BrowserRouter工作时为什么HashRouter不工作?

在安装 tensorflow 时遇到问题

带有 node.js 和 express 的基本网络服务器,用于提供 html 文件和assets资源

安装 node.JS 时,node.js 运行时和 npm 包管理器选项有什么区别?

如何使用 Node.js 在服务器端管理多个 JS 文件

从 React(同构应用程序)进行 API 调用时出现Access-Control-Allow-Origin问题

Node.js 中的 PHP exit()/die() 类似功能是什么

deno vs ts-node:有什么区别