2012-04-30 17 views
9

NodeとExpressでの経験はかなり限られていますが、端末ウィンドウからアプリケーションをデバッグするのに問題があります。ここでの問題は、次のとおりです。node debug app.js戻って実行しているノード/エクスプレスのデバッグ--- require( 'express')はブレークを作成します

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

これは急行の​​アプリケーションをデバッグする正しい方法ですか?

答えて

9

一般的なGUIデバッガ(WebKit、Chrome、Safariなど)を使用しています。

あなたは私が起こっているのかを把握するために、昔ながらのconsole.log文とnode-inspectorの組み合わせを使用することを好む、それは個人的にhttps://github.com/dannycoates/node-inspector

+1

ノードインスペクタは、行く方法のようです。それでも私には明らかではないものの、サーバー変数へのアクセス方法です。この例では、expressはundefinedを返します。 –

+0

組み込みのデバッガを使って変数を調べたいと思っていますか?ここの例を見てみてくださいhttp://nodejs.org/api/debugger.html基本的にREPLモードに入り、次に検査しなければなりません。 – 250R

+2

リンクを残すだけではなく、起動方法を正しいコマンドに追加してください...と私のupvoteを得る... ^^ – jebbie

2

行く与える必要があります。 (私はノードインスペクタで言及されているv8プロファイラはNode 0.6.xで動作するとは思わないが、正直言って試していない) .jsアプリ、私もそれを聞いてみたいですが、これは私が知っている最高です。

+0

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

10

ノードインスペクタの呼び出しをエコーするだけで、もう少し詳しく説明できます。限り、ポートが開いているとして、またはそれはあまりにもうまくリモートで動作します -

$ 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

関連する問題