最近訳あってNode.jsに傾倒していたりしますが、それはさておき。Nodeのデバッグをググると、node-inspectorとChromeでデバッグする方法がいくつか紹介されています。が、ちょっとやってみましたが(自分にとって)めんどうですた。素のdebuggerを使おうと思ったのですが、はじめ使い方が分かりませんでしたが、なんとなく理解できたかもしれないのでメモ。
debgger文
停止したいところに、「debugger」文を入れておきます。
var http = require('http'); http.createServer(function (req, res) { debugger; res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(8080);
上記の例では良くあるHTTPサーバーのサンプルです。リクエストのコールバック関数の先頭に入れておきます。
node debug 起動
引数にdebugを付けて起動します。
node.exe debug hoge.js
ブラウザから、「http://localhost:8080/」をアクセスしますと、以下のようにdebugger文で停止します。
変数を参照したい場合はrepl (Read-Eval-Print-Loop) モード(普通に引数なしでnodeを起動したときの対話シェルみたいなもの)に入ることによって、評価することができます。以下、reqを表示したところですが、色々と対話的に確認できそうです。
詳細は、http://nodejs.jp/nodejs.org_ja/docs/v0.6/api/debugger.html あたりを参照してください。(初めて読んだときにはサッパリでしたけど)
がっつりデバッグしたい場合は、node-inspectorの方が便利かなぁと思いつつ、お手軽にやりたい場合はどうぞ。