Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Nodeのデバッグ

最近訳あって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の方が便利かなぁと思いつつ、お手軽にやりたい場合はどうぞ。