パンジェンシーの「汗だく開発日誌」

システム開発の備忘録です。

【Ubuntu】【Node.js】サーバーアプリをデバッグできる「node-inspector」

どうも、パンジェンシーです。

f:id:x-fieldatts:20150502134035p:plain

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コマンドでアプリを起動すれば、デフォルトのブラウザで、デバッガーが自動で立ち上がります。
でも、ChromeOperaしか対応してないので、Firefoxなど、他のブラウザをデフォルトにしている人は、デバッガーのページをChromeOperaで開きなおしてくださいね。

だそうです。いつの間にそんな変更が…!ちなみに、

 

pangency.hatenablog.com


でも紹介した、express-generatorを使ってひな形を作成している人は、npm startでアプリを実行しているかと思います。


この場合は、「package.json」にある、

"scripts": {
	"start": "node ./bin/www"
}

というところを、

"scripts": {
	"start": "node-debug ./bin/www"
}

とすればOKです。


ちなみに、デバッガーが起動した直後は、アプリの最初の行でプログラムがとまった状態になるようです。そこから、ブレークポイントを設定するなり、ステップ実行するなりして、デバッグしていきましょう。アプリのプログラムがひと通り走って、リクエスト待ちの状態にならないと、ブラウザからページにアクセスしても応答がないので注意してください。


ルーター設定周りのコードにブレークをはると、サーバーとクライアントの間のやりとりが、どういう順番で行われているかよくわかるので、何となくサンプルコードを動かしてみたけど、何のことやらわからん!という人は、一度見ておくことをオススメします!

まとめ

「node-inspector」を実行してもうんともすんともいわないので、ちゃんとインストールできてないのか、小一時間奮闘していましたが、まさか、使い方が変わっていたとは…。


今回も、世界の誰かのお役に立てれば幸いです。ではまた!


もしよければ、漫画も読みに来てください!
↓のページのムーワァとデーヴァの大冒険に、私、パンジェンシーも出演しています!
medibang.com