2017-08-04 68 views
0

我在調試我的應用程序時遇到了一個問題。以下是體系結構: 服務器:Java(Servlet) 客戶端:React + D3 問題:每當我更改一些反應或d3代碼,並且如果發生錯誤,它就會告訴我發生了一些反應(或d3)錯誤但從不告訴我發生錯誤的函數(如快照所示)。現在,我知道僅僅通過獲取變量名稱和搜索定義變量的位置來調試它就行了。但是,當我多次使用同一對象(例如window)並且在代碼中進行了多處更改時,情況會變得很難。在這種情況下,發生錯誤的特定行號可以方便快捷。如果我錯過了一些關於調試這些應用程序的基礎知識,請告訴我。 enter image description here調試客戶端中的JavaScript

EDIT1: 1.在快照中,http://localhost:8080/..../Server服務器是主要的servlet應用程序,一種啓動板,它會觸發幾個其他基於響應的js文件。 2.提到的ReferenceError位於function updateWindow()之內,但控制檯從未提及此(這是我的問題)。

PS:我使用的是服務器端

回答

0

我覺得有沒有直接的辦法解決這個問題的Eclipse的Tomcat。所以,我會後與一些額外的點爲我工作的方法:

  • 問題:它不給出一個很好的錯誤跟蹤像標準的Java應用程序,可能是因爲它與JavaScript代碼混合。
  • 在錯誤跟蹤的每一行中,line:column指定錯誤行。我將此作爲參考,並從我的應用程序啓動的位置開始進行手動調試,即Server.java,並查看我在JS文件中定義createChart()的位置,並深入查找,直到找到引用的變量。
  • 如果ReactJS錯誤(解決參考問題後發生錯誤),我使用正常react.js(未縮小版本react.min.js)對其進行調試,以便它顯示出確切的錯誤行。縮小版本在調試時很混亂,沒用。

PS:如果有人有更好的答案,我會在將來編輯它。