2016-07-12 35 views
7

我試圖調試在VS代碼,但是,一個Node.js應用程式終端打開時,我得到這個消息:在VS代碼EADDRINUSE錯誤調試Node.js的

錯誤:聽EADDRINUSE ::: 5858

我的應用程序使用一個叫做StrawJS(https://github.com/simonswain/straw)框架,並在同一時間啓動了一些不同的過程。我認爲這是錯誤的原因,因爲有許多不同的進程試圖使用相同的調試器。

我發現了一個類似的問題(VSCode will not stop on breakpoints when first node prcess forks a second),但對attach.js文件配置端口沒有工作,問題仍然存在。

這是我的實際launch.json文件:

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "Launch", 
     "type": "node", 
     "request": "launch", 
     "port": 5858, 
     "program": "${workspaceRoot}/run.js", 
     "stopOnEntry": false, 
     "args": [], 
     "cwd": "${workspaceRoot}", 
     "preLaunchTask": null, 
     "runtimeExecutable": null, 
     "runtimeArgs": [ 
      "--nolazy" 
     ], 
     "env": { 
      "NODE_ENV": "development" 
     }, 
     "externalConsole": true, 
     "sourceMaps": false, 
     "outDir": null 
    } 
]} 

謝謝!

+1

因爲節點發現該端口已經被另一個過程,我得到這個錯誤...你嘗試過不同的端口? –

+0

是的,我已經嘗試了一些不同的端口 –

回答

1

我有同樣的問題。如果你從CMD啓動了節點--debug,你只需要在你的VS Code中附加到進程(如果你試圖在同一個端口上再次從VS Code啓動它會導致錯誤 - 這是我的錯誤)。

定義連接配置對象launch.json像這樣的東西:

{ 
    "type": "node", 
    "request": "attach", 
    "name": "Attach to Process", 
    "port": 5858 
} 

選擇附加在左上角的下拉處理和按綠色播放鍵 - 啓動調試。

+0

請問我剛剛獲得的聲譽分以上的優秀的答案,如果我結合您連接到帶有一個VSCode複合啓動配置一(GDB)啓動進程對象[節點] Process對象仍然工作,在左上角的下拉菜單中選擇複合啓動選項,然後按綠色的播放按鈕 - 開始調試。因此,我可以無縫地進入node.js過程,該過程首先調用自定義C++插件,然後進入C++插件的斷點,然後返回到斷點調試的原始node.js進程?謝謝。 – Frank

+0

我真的很抱歉,但我沒有使用插件的經驗。但是,這只是一個如何將VSCode附加到節點的過程;它應該對組合調試器沒有影響。 – stijena

+0

EADDRINUSE的問題:PORT 5858只發生願意在我的我與運行時的DELL筆記本停靠,並連接到公司的以太網網絡安裝的節點v6.11.1 RedHat的Linux虛擬框DELL WINDOWS 10的筆記本電腦。當我沒有連接到公司網絡時,EADDRINUSE問題不會發生。一位同事告訴我,他認爲端口5858可能已經被代理使用,可能是http-proxy,但是當我在EADDRINUSE發生時在Windows 10終端和RedHat Linux虛擬機上運行netstat時,5858端口沒有條目。如何我能解決這個問題嗎?謝謝。 – Frank