2012-04-30 70 views
9

我對Node和Express的使用經驗並不理想,但我無法從終端窗口調試應用程序。這裏是問題:Debugging Node/Express --- require('express')創建中斷

運行node debug app.js回報:

< debugger listening on port 5858 
connecting... ok 
break in server.js:1 
    1 var express = require('express'); 

這是明確的調試應用程序的正確方法嗎?

回答

9

有一個流行的GUI調試器(利用WebKit,即Chrome,Safari ..)。

你應該給它一個去https://github.com/dannycoates/node-inspector

+1

節點檢查員似乎是要走的路,謝謝。但它仍然不清楚你如何訪問服務器變量。例如,在這個例子中,express返回undefined。 –

+0

我假設你想用內置的調試器來檢查變量嗎?嘗試看看這裏的例子http://nodejs.org/api/debugger.html基本上你需要進入REPL模式,然後檢查.. – 250R

+2

添加正確的命令如何啓動它,不只是離開一個鏈接...並賺取我的upvote ... ^^ – jebbie

2

就個人而言,我更喜歡使用的node-inspector與老式console.log語句組合弄清楚發生了什麼事情。 (我認爲節點檢查員提到的v8-profiler不適用於Node 0.6.x,但說實話,我還沒有嘗試過。)

如果其他人有一個更好的維護工具來調試節點.js應用程序,我也很想聽到它,但這是我所知道的最好的。

+0

http://stackoverflow.com/questions/14214021/how-to-install-v8-profiler-using-npm-on-windows-7 –

10

只是更加明確地迴應了對Node Inspector的調用。

$ sudo npm install -g node-inspector 
$ node-debug app.js <arguments to your app> 
debugger listening on port 5858 
Node Inspector is now available from http://localhost:8080/debug?port=5858 
Debugging `app.js` 

現在(?一個基於WebKit)瀏覽器訪問該地址 - 或者只是正常遠程過,只要端口是開放的。

enter image description here

現在,您可以完全訪問所有的服務器端變量(app對象實例),暴露在客戶端的調試器。這很神奇。您可以在app.get()入口點設置斷點,也可以在服務器init或任何位置設置斷點。

+0

我不能得到這個工作。節點檢查器打開,但沒有找到app.js。 –

+2

這個應該是被接受的答案 - 剛剛啓動「node-inspector app.js」根本就沒有辦法;)和..只是留下一個鏈接「嘿,看看這個」是不是什麼感覺像對我的答案.. ^^ – jebbie

相關問題