我有一些编写容器绑定脚本的经验,但对Web应用程序完全是新手。如何调试(例如查看变量值,单步执行代码等)Web应用程序?在容器绑定脚本中,这很容易,因为我可以设置断点,使用应用程序脚本调试器-如何在网页中进行此操作,例如当我执行doPost时?
doPost
yduiuuwa1#
James Ferreira在他的优秀著作《Google Script》中主张用三个浏览器窗口来设置自己的开发环境;一个用于代码,一个用于实时视图(在“发布”、“部署为Web应用程序”中,会为您提供一个“最新代码”链接,该链接会在刷新实时视图时将其更新为最新保存),一个用于记录错误的电子表格(使用try/catch,将您希望关注的代码段 Package 起来)。
zf9nrax12#
在 Web 应用 程序 中 , 即使 是 通过 Logger.log ( ) 对 变量 进行 最 基本 的 调试 也 不 起 作用 !Peter Herrmann's BetterLog for Apps Script 是 一 个 很 好 的 解决 方案 , 它 允许 你 登录 到 一 个 电子 表格 ( 与 你 的 工作 电子 表格 相同 或 单独 的 一 个 ) 。安装 非常 简单 - 只需 添加 一 个 外部 资源 ( 请 参阅 Github 自述 文件 ) 和 一 行 代码 来 覆盖 标准 的 Logger 对象 :
Logger = BetterLog.useSpreadsheet('your-spreadsheet-key-goes-here');
中 的 每 一 个
BetterLog 将 在 给定 的 电子 表格 中 创建 一 个 名 为 " Log " 的 新 工作 表 , 并 将 每个 日志 调用 写入 该 工作 表 的 单独 一 行 。
a11xaf1n3#
所以,对我来说,我使用检查器调试前端,我还没有找到一种方法来单步调试代码,但是你可以在javascript中使用“调试器”(以及console.log)来停止代码并检查变量。为了调试后端,我所做的就是编写如下函数
function test_doSomething(){ payload = "{item1: 100, item2: 200}" //<- copy paste from log file backend_doSomething(payload) } function backend_doSomething(payload){ Logger.log(payload) params = JSON.parse(payload) ... }
在后台刷新项目之后,可以查看执行情况,从日志文件中获取有效负载,并将其粘贴到test_doSomething()函数中。从这里,您将重新创建要调试的调用,然后可以运行该调用,像往常一样逐步执行后端代码。
3条答案
按热度按时间yduiuuwa1#
James Ferreira在他的优秀著作《Google Script》中主张用三个浏览器窗口来设置自己的开发环境;一个用于代码,一个用于实时视图(在“发布”、“部署为Web应用程序”中,会为您提供一个“最新代码”链接,该链接会在刷新实时视图时将其更新为最新保存),一个用于记录错误的电子表格(使用try/catch,将您希望关注的代码段 Package 起来)。
zf9nrax12#
在 Web 应用 程序 中 , 即使 是 通过 Logger.log ( ) 对 变量 进行 最 基本 的 调试 也 不 起 作用 !
Peter Herrmann's BetterLog for Apps Script 是 一 个 很 好 的 解决 方案 , 它 允许 你 登录 到 一 个 电子 表格 ( 与 你 的 工作 电子 表格 相同 或 单独 的 一 个 ) 。
安装 非常 简单 - 只需 添加 一 个 外部 资源 ( 请 参阅 Github 自述 文件 ) 和 一 行 代码 来 覆盖 标准 的 Logger 对象 :
中 的 每 一 个
BetterLog 将 在 给定 的 电子 表格 中 创建 一 个 名 为 " Log " 的 新 工作 表 , 并 将 每个 日志 调用 写入 该 工作 表 的 单独 一 行 。
a11xaf1n3#
所以,对我来说,我使用检查器调试前端,我还没有找到一种方法来单步调试代码,但是你可以在javascript中使用“调试器”(以及console.log)来停止代码并检查变量。
为了调试后端,我所做的就是编写如下函数
在后台刷新项目之后,可以查看执行情况,从日志文件中获取有效负载,并将其粘贴到test_doSomething()函数中。
从这里,您将重新创建要调试的调用,然后可以运行该调用,像往常一样逐步执行后端代码。