如何解决如何在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
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。