【Ubuntu】【Node.js】サーバーアプリをデバッグできる「node-inspector」
どうも、パンジェンシーです。
node.jsでアプリを作るのは楽しいですね。クライアント側のデバッグは、Google chromeのデベロッパーツールがあれば、だいたい何とかなりますが、サーバー側のコードは、なかなかデバッグが難しいですね。
そこで今回は、サーバー側のコードも、クライアントと同じような感じでデバッグできる、nodeのモジュール「node-inspector」のご紹介です。 ====
環境
- Ubuntu 14.04 LTS
- node.js v0.10.37
- node-inspector v0.12.4
使い方
使い方はとても簡単。まず、node-inspectorをインストールします。このモジュールは、アプリのパッケージ毎なく、グローバルにインストールするというところだけ注意しましょう。
$ npm install -g node-inspector
次に、デバッガーの起動方法です。以前は、ターミナルを開き、「node-inspector」を実行して、「http://0.0.0.0:8080/debug?port=5858」にアクセス!という方法でやっていたのですが、何故か動かない!
GitHubのページを確認したのですが、やり方が変わっているようです。
GitHub - node-inspector/node-inspector: Node.js debugger based on Blink Developer Tools
上のページによると、
$ node-debug app.jsという風に、node-debugコマンドでアプリを起動すれば、デフォルトのブラウザで、デバッガーが自動で立ち上がります。
でも、ChromeとOperaしか対応してないので、Firefoxなど、他のブラウザをデフォルトにしている人は、デバッガーのページをChromeかOperaで開きなおしてくださいね。
だそうです。いつの間にそんな変更が…!ちなみに、
でも紹介した、express-generatorを使ってひな形を作成している人は、npm startでアプリを実行しているかと思います。
この場合は、「package.json」にある、
"scripts": { "start": "node ./bin/www" }
というところを、
"scripts": { "start": "node-debug ./bin/www" }
とすればOKです。
ちなみに、デバッガーが起動した直後は、アプリの最初の行でプログラムがとまった状態になるようです。そこから、ブレークポイントを設定するなり、ステップ実行するなりして、デバッグしていきましょう。アプリのプログラムがひと通り走って、リクエスト待ちの状態にならないと、ブラウザからページにアクセスしても応答がないので注意してください。
ルーター設定周りのコードにブレークをはると、サーバーとクライアントの間のやりとりが、どういう順番で行われているかよくわかるので、何となくサンプルコードを動かしてみたけど、何のことやらわからん!という人は、一度見ておくことをオススメします!
まとめ
「node-inspector」を実行してもうんともすんともいわないので、ちゃんとインストールできてないのか、小一時間奮闘していましたが、まさか、使い方が変わっていたとは…。
今回も、世界の誰かのお役に立てれば幸いです。ではまた!
もしよければ、漫画も読みに来てください!
↓のページのムーワァとデーヴァの大冒険に、私、パンジェンシーも出演しています!
medibang.com