web-dev-qa-db-ja.com

Windowsで基本的なnode.jsアプリケーション(httpではない)をデバッグする方法

Node-inspectorとiisnodeを使用してhttpアプリケーションをデバッグする方法を知っています。しかし、node-inspectorを使用して、Windows上でnon httpノードアプリケーションをデバッグできますか?

私は試した:

 node debug test.js

それは言う:

debugger listening on port 5858

しかし、オープニングhttp://localhost:5858/ in Chromeは何もしません。


ところで:実行中node debug test.jsは、機能するコマンドラインデバッガを起動します。しかし、それはノードインスペクターのようなものではありません。

29
Sylvain

ノードインスペクタを使用するには、正しいスイッチはnode --debugではなくnode debugです。

詳細な手順は次のとおりです。

  1. ノードインスペクターをグローバルにインストール(npm install -g node-inspector
  2. コマンドラインウィンドウから、次を実行します:node-inspector
  3. open Chrome=に移動し、http://localhost:8080/debug?port=5858に移動します。ノードインスペクタUIが表示されますが、実行中のアプリはありません。
  4. 別のコマンドラインウィンドウから、次のように--debugスイッチを使用してアプリを実行します:node --debug test.js
  5. Chromeタブとvoila!を更新します

いくつかの興味深い点:

  • アプリを終了して再起動する場合は、ノードインスペクタタブを更新してください。すべてのブレークポイントが保持されます。
  • 最初の行で自動的に中断するには、node --debug-brk test.jsでアプリを開始します
63
Sylvain

それは言う:ポート5858でリッスンするデバッガー

私はこれについて自分自身を疑問に思いましたが、Node.jsのドキュメントにはデバッガがを介してアクセスできることが示されているため、単純なTCP protocol HTTPについては何も言わない。私の推測では、HTTPは_http:// localhost:5858では利用できないと思います。

「V8には、簡単なTCP protocol "を介してプロセス外でアクセスできる広範なデバッガーが付属しています」- http://nodejs.org/api/debugger.html =

2
Hector Correa

あなたを助けるかもしれないいくつかのリンク:

2
Alfred

ごく最近、Microsoftは Visual Studio用のnode.jsツール をリリースしました。 node.jsのVisual Studioデバッグは非常に快適です。

1
user659025

あなたがWindowsで私のような初心者であり、「ノードインスペクターが認識されない」またはWindows JScriptエラーについて何かを得た場合...グローバルインストール、PATHへの追加などにもかかわらず、これが役立つ場合があります。

C:\ Users\urusername\AppData\Roaming\npmに移動します

次に、node-debug.cmdまたはnode-inspector.cmdを実行します。

あなたは次のような魔法の言葉を取得する必要があります

Node Inspector v0.12.7
Visit http://127.0.0.1:8080/?port=5858 to start debugging.
Debugger listening on port 5858

驚くばかり。より良い解決策を知っている場合は、私に知らせてください

0
Script Kitty

node-inspectorは非常に役立ちます。

WebSocketをサポートするブラウザから使用してください。

ブレークポイント、プロファイラー、ライブコーディングなど。

http://erickrdch.com/2012/09/debug-a-nodejs-app-with-chrome-dev-tools.html

0
Amol M Kulkarni

参考までに、OSX 10.8では、Chrome v26は機能しないようですが、Safari 6は上記と同じ手順を使用し、接続には0.0.0.0:8080を使用しています。

Danny Coatesによる別の投稿には、次の順序で行うと書かれています。

  1. あなたのノードプロセス:node --debug(または--debug-brk)my_program.js
  2. ノードインスペクター:ノードインスペクター
  3. ブラウザが0.0.0.0:8080をポイントしました
0
Nicolas Frias