如何在谷歌应用程序脚本中使用节点js(缓冲区)

dgn*_*gnk 3 javascript scripting google-sheets node.js google-apps-script

我想在谷歌应用程序脚本中执行这个节点 js 行。我如何在谷歌应用程序脚本中使用这一行:

const payload = new Buffer(JSON.stringify(obj)).toString('base64');
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到了这个错误:

ReferenceError: Buffer is not defined
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 5

我相信你的目标如下。

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

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

示例脚本:

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

结果:

当上面的脚本运行时,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
Run Code Online (Sandbox Code Playgroud)

参考: