2014-08-30 93 views
4

我有我試圖調試一個基本明確的應用程序,但我不能讓節點檢查上OSX無法獲取節點檢查工作

正常工作

在一個終端窗口,我跑:

node --debug-brk server.js 

在另一個終端窗口,我跑:

node-inspector 

節點督察打開這裏:

http://localhost:8080/debug?port=5858 

在另一個瀏覽器選項卡中我嘗試打開這裏我的網站

http://localhost:8080/ 

我得到打印到屏幕

Cannot GET/

如果我打開,而不是

http://localhost:3000 

我得到我的應用程序,因爲我將其設置在server.js中

app.set('port', process.env.PORT || 3000); 

但是現在沒有斷點在調試器

我相信我在這裏做一些愚蠢的工作,但我已經一遍又一遍地閱讀文檔和教程,我不能得到這個工作。

其他的事情我已經試過在一個終端窗口中運行:

node-debug server.js 

我得到同樣的事情如上。調試檢查員打開並停止在第一線和我在

http://localhost:8080 

網站還稱

Cannot GET/

我也試過

node-debug --no-debug-brk server.js 

的我得到了相同的結果,除了節點檢查中未停在第一行

回答

1

調試檢查器操作ns並在第一行停止...

node-inspector開始調試應用程序時,默認情況下,它在應用程序啓動過程中停止在第一行。如果您嘗試在http://localhost:3000處訪問您的應用程序,且調試器停在第一行,則您將永遠無法到達您的斷點。

在嘗試任何操作之前,您必須恢復腳本執行或使用--no-debug-brk選項啓動node-inspector,以防止停在第一行。

要確保node-inspector沒有任何線停在所有的,你應該做的:

  • 把一個斷點,你有你的電話app.listen,或行;
  • a更多極端解決方案:在您的主文件的每一行放置一個斷點。
+0

好的這種作品。我有一個路由文件(從主server.js文件引用),其中包含: router.get('/ api/projects',projects.getProjects); 如果我把斷點放在那條線上,即使這條路線被擊中,也沒有任何反應。同樣,如果我在主server.js文件的任何位置添加斷點,則不會發生任何事情。但是,如果我在項目控制器(projects.getProjects)中的getProjects函數中添加斷點,它現在會立即觸發斷點並正確暫停調試器。接下來的問題是爲什麼前兩個文件中的斷點沒有被命中(server.js - > routes.js?) – 2014-08-31 07:18:05

+0

在進一步的思考中,一旦加載了主server.js文件,它永遠不會執行該代碼服務器啓動後再次? – 2014-08-31 07:24:38

+0

這一切都取決於你的應用程序的寫法,但IMO,現在是另一個問題。我的建議是:提出另一個問題來解釋有關應用程序流的問題,併發布您提到的三個文件的代碼。我很樂意嘗試找出與你有關的問題。現在解決了實際問題(關於節點檢查器)。 – 2014-08-31 13:33:48