【问题标题】:Debug GAS Web App doPost to see an output of execution error调试 GAS Web App doPost 以查看执行错误的输出
【发布时间】:2020-11-11 19:34:02
【问题描述】:

网络应用程序:

function doPost(e) {
   var data = JSON.parse(e.postData.contents).somethingtobreakthecode()
   return "Okay"
}

收到 POST 请求时会失败。

任何人,即使是匿名者,都可以执行 WebApp。

问题是:

如果 WebApp 不会在记录器中显示任何日志并且您看不到执行的输出,我们该如何调试它?

我尝试过 BetterLog,它回答了日志记录部分,但如果错误输出不可见,则需要付出很多努力。

编辑: 我尝试过的所有事情的清单

  1. BetterLog:它让我可以将日志放在我认为脚本会中断的特定行。
  2. ReqBin:它可以让我看到这个 doPost 会产生的错误,但要做到这一点,我必须在每次更改时发布一个新版本。
  3. DevUrl:由于缺乏授权,无法将 DevUrl 与 ReqBin 一起使用。 (我在这里遗漏了什么吗?)
  4. StackDriver:它只显示执行是完成还是失败。
  5. 我尝试记录 e 手动传递它,但我得到了 [Object] 对象。是否可以从 doPost(e) 中获取 (e) 的值并从其他函数手动将其传递给 doPost?

【问题讨论】:

  • 您是否使用过任何应用程序脚本 loogers 或无法访问该功能?developers.google.com/apps-script/guides/logging
  • 我已经更新了问题
  • 使用 try-catch 块和 console.log 错误消息在堆栈驱动程序中查看内容
  • 是否可以从doPost(e)中获取(e)的值,并从其他函数手动传递给doPost?
  • 您是否能够记录问题?您能否分享完整的代码和网络应用程序以尝试重现该问题?

标签: google-apps-script


【解决方案1】:

尝试按照here 的步骤将 Apps 脚本绑定到 GCP 项目,重新授权您的脚本,向网络应用发出 POST 请求,然后前往https://console.cloud.google.com/logs/query 以查看console.log() 输出的日志声明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2019-06-08
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多