2015-10-06 38 views
0

我按照這裏的說明:https://github.com/node-inspector/node-inspectorNode-Inspector無法打開套接字

很簡單。 npm install node-inspector。在一個shell運行node-inspector,另一個運行node --debug app.js。 Shell爲調試器吐出具有特定端口的本地主機地址。在瀏覽器中打開該地址 - 加載您的代碼。從那裏添加斷點,調試網絡等。

但這不起作用。 下面的消息不斷地登錄我的外殼:

Failed to open socket on port 5858, waiting 1000 ms before retrying

..和無連接而成。

所以我的問題是有人有這個問題,併成功地找到了解決方案。很想得到這個工作,將是超級有用的。我唯一的服務器端調試器的經驗是Ruby的Byebug,這是一個小菜一碟。

回答

1

您看到的消息是打印的,因爲有另一個進程在端口5858上進行偵聽。或者是另一個應用程序,或者只是調試器下的另一個節點進程實例。

基於這個答案

如果您的應用程序在通過Node.js的核心模塊「集羣」集羣模式下運行下面的評論的更新,那麼你最終得到多個工作進程,在他們每個人試圖在端口5858上偵聽。

節點檢查器無法同時調試多個工作進程。您必須選擇一個進程並僅在該進程中啓用調試器。當您通過node --debug啓動應用程序時,所有進程都嘗試啓用調試器,因此您不能使用此命令。

相反,你必須:

  1. 未啓用調試器啓動應用程序。
  2. 然後,您需要找到您想要調試的工作進程的pid(進程id)。
  3. 一旦你有了PID,你就需要在目標進程中啓用調試器。您可以在UNIX上運行kill -1 <pid>,或使用適用於所有平臺的node debug -p <pid>。在繼續進行之前,請不要忘記退出node debug
  4. 一旦目標進程調試程序在5858上進行偵聽,就可以按照常規方式啓動Node Inspector。

我的回答基於以下博文:https://strongloop.com/strongblog/whats-new-nodejs-v0-12-debugging-clusters/,查看更多詳情。

+0

lsof的-i:8080 //顯示端口正在運行的節點檢查的過程8080 lsof的-i:5858 //沒有顯示出過程 我不認爲這是問題,對端口的進程5858是不是運行。 –

+0

您是否可以在Node的本地羣集中運行應用程序?另外什麼是您的節點版本? –

+0

節點v0.10.40看起來它可能正在羣集中運行。 –

相關問題