簡體   English   中英

調試 Google Apps 腳本 Web 應用程序的有效方法

[英]Effective way to debug a Google Apps Script Web App

我有一些編寫容器綁定腳本的經驗,但對 web 應用程序完全陌生。

如何調試(例如查看變量值、逐步執行代碼等)web 應用程序? 在容器綁定腳本中這很容易,因為我可以設置斷點,使用應用程序腳本調試器 - 我如何在 web 頁面中對此進行 go,例如當我執行doPost時?

James Ferreira 在他的優秀著作《Google Script》中提倡用三個瀏覽器窗口設置自己的開發環境; 一個用於代碼,一個用於實時視圖(在發布、​​部署為 Web 應用程序中,您將獲得一個“最新代碼”鏈接,該鏈接將在刷新時將實時視圖更新為最新保存),一個用於電子表格記錄錯誤(使用 try/catch 包裹你想要關注的代碼位)。

在 Web Apps 中,即使是通過 Logger.log() 進行最基本的變量調試也不起作用!

Peter Herrmann 的 BetterLog for Apps Script是至少提供簡單變量日志記錄的一個很好的解決方案。 它允許您登錄電子表格(與您的工作電子表格相同或單獨的電子表格)。

安裝非常簡單——只需添加一個外部資源(參見 Github 自述文件)和一行代碼來覆蓋標准 Logger 對象:

Logger = BetterLog.useSpreadsheet('your-spreadsheet-key-goes-here');

請記住,您在此處作為參數提供的電子表格將用於日志輸出,因此任何人都必須可寫

BetterLog 將在給定的電子表格中創建一個名為“Log”的新工作表,並將每個日志調用寫入該工作表的單獨一行。

所以,對我來說,我使用檢查器調試前端,我還沒有找到單步執行代碼的方法,但是您可以在 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() function 中。

從那里,您正在重新創建要調試的調用,您可以運行它,像往常一樣單步執行后端代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM