如何在Google Apps脚本中使用Node jsBuffer 示例脚本:结果:参考:

问题描述

我想在Google Apps脚本中执行此节点js行。 如何在Google Apps脚本中使用此行:

const payload = new Buffer(JSON.stringify(obj)).toString('base64');

运行时出现此错误:

ReferenceError: Buffer is not defined

解决方法

我相信您的目标如下。

  • 您要将Node.js中的const payload = new Buffer(JSON.stringify(obj)).toString('base64');转换为Google Apps脚本。

很遗憾,在当前阶段,new Buffer()Buffer.from()不能与Google Apps脚本一起使用。因此,在这种情况下,我认为Utilities.base64Encode可以用于您的情况。示例脚本如下。

示例脚本:

const obj = {key: "value"};
const payload = Utilities.base64Encode(JSON.stringify(obj));
console.log(payload)  // eyJrZXkiOiJ2YWx1ZSJ9

结果:

运行上述脚本时,将检索eyJrZXkiOiJ2YWx1ZSJ9。在这种情况下,我可以确认结果值与以下Node.js脚本相同。

const obj = {key: "value"};
const payload = new Buffer(JSON.stringify(obj)).toString('base64');
// or const payload = Buffer.from(JSON.stringify(obj)).toString('base64');
console.log(payload)  // eyJrZXkiOiJ2YWx1ZSJ9

参考:

,

nodeJS中使用了缓冲区

客户端JavaScript中的等效项是数组缓冲区

为了从字符串中创建一个,您必须从新的具有字符串长度的数组缓冲区对象中创建uint8array或Uint16Array,然后遍历该数组并在索引处添加该字符串的char代码值,并返回缓冲区

一个功能

function Buffer(str) {
    var buf= new ArrayBuffer(str.length/*multiply by 2 for higher chars*/)
    var ar = new Uint8Array(buf) //use Uint16Array etc for larger,i=0
    for(i=0;i< ar.length;i++) ar[i] = str.charCodeAt(I)
    return buf
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...