【问题标题】:Trying to write Google Cloud Function to write to a Google Sheet using node.js尝试使用 node.js 编写 Google Cloud Function 以写入 Google Sheet
【发布时间】:2020-02-11 16:57:55
【问题描述】:

我刚刚从 Google Apps Script 过渡到 node.js 和 Google Cloud Functions,我不理解现有帖子中的部分代码。

在这篇文章中:How to use Google sheets API while inside a google cloud function,@domdomegg 列出了一个代码示例,该示例从 Google Cloud Function 调用 Google Sheets API。我已经让该代码在 Google Cloud Function 中运行。

但是,我不明白代码的特定部分:

    // This just prints out all Worksheet names as an example
    .then(({ data: { sheets } }) => {
      res.status(200).send({ sheets });

这是我不明白的data: { sheets } 位。我在想这是我需要将代码写入 Google 表格的地方,但这对我来说有点神秘。我已经够菜鸟了,我还不能对原始帖子发表评论。对菜鸟有什么帮助吗?

【问题讨论】:

    标签: javascript node.js google-cloud-platform google-cloud-functions google-sheets-api


    【解决方案1】:

    这确实是一些复杂(棘手)的语法......让我们看看我们是否不能把它拆开。

    首先是.then(...)。这是当一个承诺被解决时调用的。 then 的参数是一个函数。

    在这个例子中,函数是:

    ({data: {sheets}}) => {
       res.status(200).send({sheets});
    }
    

    如果这令人困惑,它可以重写为:

    function({data: {sheets}}) {
       res.status(200).send({sheets});
    }
    

    但是函数参数的这种奇怪之处是什么?我们习惯于看到表单的功能:

    function(a, b, c) {
     ...
    }
    

    其中abc 将是参数。在我们的例子中,参数似乎是{data: {sheets}} ...我们如何解析它?

    答案似乎是一个名为 *Destructuring Assignment 的 ECMAScript6 概念。见这里:

    http://es6-features.org/#ObjectMatchingDeepMatching

    看来:

    function({data: {sheets}}) {
       ...
    }
    

    逻辑上等价于:

    function(_tmp) {
       let sheets = _tmp.data.sheets;
       ...
    }
    

    最后...

    send({sheets})
    

    逻辑上是:

    send({sheets: sheets})
    

    和往常一样,我可能是错的,所以让我们关注 cmets,我可以根据进一步的反馈更新或删除此答案。

    【讨论】:

    • 感谢您的澄清!所以 data: {sheets} 是一个隐式函数。我讨厌那些;-)。附加问题:什么是数据和表格?我假设那些是返回的东西的成员?
    • @BruceKozuma .then(...) 里面是一个回调函数。它将在前一个函数完成时调用,调用的参数将是它的结果。在这种情况下,参数是一个包含键 data 的对象,该对象与另一个包含 sheets 键的对象相关联。所有这些听起来可能有点复杂,所以我建议您将 .then(...) 中的函数替换为:(result) => console.log(result) 以查看传递给此回调函数的参数是什么样的。
    • @BruceKozuma 另外,我想向您推荐这个链接:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…,在这里您可以了解更多关于 Kolban 解释的功能。还有很多对你有用的例子。干杯
    猜你喜欢
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2021-12-28
    • 2019-04-30
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多