2014-01-18 90 views
1

幾個星期前我嘗試使webstorm調試器工作,但事實並非如此。 今天我再試一次,但我得到了同樣的結果。使用帶有node.js的Webstorm調試器

我按照這些指令 http://www.jetbrains.com/webstorm/webhelp/running-and-debugging-node-js.html#d93421e461

有我的配​​置,我居然有三臺服務器(使用pomelo.js),一個是網絡,一個是web服務,託管遊戲服務器和遊戲基本上不能從http請求直接訪問的服務器。 (使用的端口1500 Web服務來訪問)

https://docs.google.com/file/d/0ByzbHcAxmCyvQ1ZqZTFhREpZNGM https://docs.google.com/file/d/0ByzbHcAxmCyvV2JFWkwxTldJNFE https://docs.google.com/file/d/0ByzbHcAxmCyvZnVlYXNNSk4weHM https://docs.google.com/file/d/0ByzbHcAxmCyvN2o1VUhQR3cwX0U

當我點擊運行:

"D:\Logiciels installés\nodejs\node.exe" --debug-brk=1337 web-server\app.js 
debugger listening on port 1337 

但我得到什麼,如果我去的網頁,只是這個錯誤:

Code d'erreur : ERR_CONNECTION_ABORTED. 

N嗷嗷,如果我在調試模式下運行它,二調試控制檯打開: 調試網站:

"D:\Logiciels installés\nodejs\node.exe" --debug-brk=29855 --debug-brk=1337 web-server\app.js 
debugger listening on port 1337 
[ReferenceError: Buffer is not defined] 
Grunt watcher starting... 


*********** Controller Reader *********** 


GET/POST/PUT/DELETE =>/
GET/POST/PUT/DELETE => /chat 
GET/POST/PUT/DELETE => /demo 
GET/POST/PUT/DELETE => /login 
GET/POST/PUT/DELETE => /game 
GET/POST/PUT/DELETE => /subscribe 
POST => /game/connect 
GET => /mapEditor 
POST => /mapEditor/:action 
GET => /translate 


********* Controller Reader End ********* 


Web server has started in development mode. 
Please log on http://127.0.0.1:1337/index.html 
grunt-cli: The grunt command line interface. (v0.1.11) 

但是,如果我去標籤「調試」上我得到了一個「無法連接」。

第二調試控制檯「調試的Web站#1」: 我在控制檯上沒有什麼,但我得到了調試器選項卡上的「連接到127.0.0.1:1337」。

有時,當我試圖達到我的網頁像這樣的網頁:

Type: connect 
V8-Version: 3.14.5.9 
Protocol-Version: 1 
Embedding-Host: node v0.10.24 
Content-Length: 0 

當我運行調試模式,調試網絡調試選項卡嘗試連接到127.0.0.30xxx,一隨機端口30000左右,但失敗,然後顯示「無法連接」。

有人知道發生了什麼嗎?因爲我不......謝謝。

編輯

Error: Failed to lookup view "..\views\game\layout.ejs" 
    at Function.app.render (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\application.js:493:17) 
    at ServerResponse.res.render (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\response.js:798:7) 
    at C:\wamp\www\Ayolan\web-server\app\controllers\mainController.js:25:17 
    at Function.app.render (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\application.js:495:14) 
    at ServerResponse.res.render (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\response.js:798:7) 
    at module.exports.index (C:\wamp\www\Ayolan\web-server\app\controllers\mainController.js:13:13) 
    at callbacks (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\router\index.js:164:37) 
    at param (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\router\index.js:138:11) 
    at pass (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\router\index.js:145:5) 
    at Router._dispatch (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\router\index.js:173:5) 

回答

1
Error: Failed to lookup view "..\views\game\layout.ejs" 
    at Function.app.render (C:\wamp\www\Ayolan\web-server\node_modules\express\lib\application.js:493:17) 
    ...

不太可能是由環境變量引起的,因爲父環境變量默認傳遞給應用程序。但我建議您通過點擊https://docs.google.com/file/d/0ByzbHcAxmCyvQ1ZqZTFhREpZNGM/edit上的「環境變量」來確保父環境變量的傳遞(應該勾選「包含父環境變量」)。

更可能是「工作目錄」被錯誤指定。確保它與從控制檯啓動應用程序時相同。

+0

我只是看了一下,然後勾選了「包含父環境變量「已被檢查。 你是對的,這是因爲路徑,我的錯誤是在工作目錄「C:\ wamp \ www \ Ayolan \」而不是「C:\ wamp \ www \ Ayolan \ web-server」和Javascript文件「web-server \ app.js」而不是「app.js」。謝謝! – Vadorequest

1

When I click on Run:

D:\Logiciels installés\nodejs\node.exe" --debug-brk=1337 web-server\app.js 
    debugger listening on port 1337 

But I got nothing if I go on the webpage, just this error:

Code d'erreur : ERR_CONNECTION_ABORTED.

這是預期的,因爲你的 「調試網絡」 運行confuguration有 「--debug-BRK = 1337」 的說法,讓Node.js的應用程序啓動後立即暫停。要恢復它,Node.js遠程調試會話應該以相同的端口啓動。

Now, if I run it in debug mode, two debug consoles opened: Debug Web:

"D:\Logiciels installés\nodejs\node.exe" --debug-brk=29855 --debug-brk=1337 web-server\app.js 
    debugger listening on port 1337 
    ...

注意,命令行包含兩個複製參數 「--debug-BRK = 29855」 和 「--debug-BRK = 1337」。第一個參數「--debug-brk = 29855」由WebStorm附加,第二個參數取自「調試Web」運行配置的「節點參數」字段。

WebStorm假定應用程序將準備好在端口29855上進行調試並等待連接。但根據輸出(「在端口1337上進行偵聽的調試器」),應用程序的調試器實際上是在端口1337上啓動的。

接下來發生的事情是WebStorm發現另一個調試端口(1337)被打開,並假定它是子節點進程的調試端口。所以WebStorm啓動「Node.js Remote Debug」運行與1337端口相關的配置。這就是爲什麼你看到第二個控制檯(「調試Web從站#1」)。

「調試Web從站#1」控制檯使用端口1337繼續執行應用程序。但「調試Web」控制檯正在等待來自端口29855的連接(這就是爲什麼您看到「無法連接」那裏)。

只需在「節點參數」字段(「調試Web」運行配置)中刪除「--debug-brk =」,它應該按預期工作。

希望這會有所幫助。

+0

感謝您的解釋,我會盡快嘗試,可能今晚。 – Vadorequest

+0

我剛剛嘗試並編輯了主帖,但我收到了錯誤,而不是網頁。如果我從Windows控制檯或cygwin運行節點app.js服務器啓動,我可以使用該頁面沒有問題。你知道爲什麼當我從IDE運行它時會失敗嗎? – Vadorequest

+0

我也嘗試過使用我的遊戲Webseervice,但我在白頁上收到了「未找到」消息。同樣在這裏,如果我從控制檯中調用節點app.js,一切正常。 – Vadorequest