Monthly Archives: 11月 2014

node.jsを効率よくデバッグする

今回はデバッグのやり方について。ホントに大事。

コマンドラインでデバッグ

前回のnode.jsの環境をmacに導入して色々やってみたけど、コマンドラインでデバッグする事が出来る事が分かった。
こうすると、デバッグの画面が出てくる。

debug> って書いてあるように、対話型のデバッガです。この時点で、参照したい変数とかを入力すると、その値が出てくるような感じ。

使えるコマンドは、こんな感じ。

c コンティニュー(そのまま最後まで行く)
r プログラムの先頭から再実行
n 次のステップへ(ステップ実行)
s 関数内を実行(ステップイン)
o 関数内から抜け出す(ステップアウト)

そしたら、とりあえずさっきの状態にnを押してEnterを押してみる。

はい、console.logでhelloが表示されて、3行目まで処理が進みましたね。これが原始的なやり方なんだと思います。一応sb(fileName, line)とか、cb(fileName, line)とかでブレークポイントも設定できるっぽいですが、ちょっと使いづらいですね。

node-inspectorを使おう

それに対して、node-inspectorを使うとエグいくらい簡単にデバッグ出来ます。具体的には、node-inspectorとChromeを用いてデバッグを行います。従って、必要なものは、node-inspectorのインストールとChromeのインストールです。

ここでは、node-inspectorのインストールを書きます。Chromeは適当にやっとく。

まず、githubに公開されているnode-inspectorをダウンロードしてくる。

https://github.com/node-inspector/node-inspector

そして、生み出されたディレクトリに行って、以下のコマンドを実行。

これで、インストールはできるはずです。とりあえずこれができれば準備は整ったも同然。ここからやることは、node.jsのアプリケーションをデバッグ状態で起動して、その実行情報をローカルのwebに公開する。そこで公開された実行情報chromeから覗き見る、といった流れです。

まず、デバッグ状態で起動及びそれをローカルのwebに公開って部分をやります。コマンドはこんな感じ。まずはデバッグ状態で起動。

デフォルトのデバッグポートは5858なのですが、変えたければこうやって書ける。

さっきからやってるhello.jsはコールバックとかないので、1行目でブレークしておきたい。そういうときは、こうやって書く。

次に、node-inspectorを起動し、localのwebに実行状態を公開する。

これで、node-inspectorの起動完了。そしたら、chromeで、こちらのページにアクセス。

http://ホスト名:8081/debug?port=5859

そうすると、あら不思議、デバッグの画面が出てくる。スクリーンショット貼るのはだるいので、昔の攻略本にあった「あとは君の目で確かめてくれ!」って感じでよろしくお願いします。

macにnode.jsの環境を入れる

サーバサイドで動くjavascriptって言われて、「気持ち悪っ」って思ってしまってなかなか手をつけていなかったnode.jsですが、遂にとある事情で手を染めなければならない事に。。

というわけで、macにnode.jsの環境を入れる方法。と思ったんですが、ホントに書くまでもなかったけれども、一応メモ。

というか、パッケージをインストーラでインストールするだけ。ホンマにお粗末。

まずは、こちらからパッケージをダウンロード。超簡単。

http://nodejs.jp/nodejs.org_ja/

あとはダブルクリックして、インストールするだけ。インストールしたらnodeコマンドをターミナルで叩いて確認。

これで、動く環境は整った。試しにhello.jsを書いてみる。

hello.js

書いたら、こんな感じで実行。Hello, World!が表示されれば成功。

以上。次回はnode.jsでデバッグを行う方法。