無料ブログはココログ

« 論文研修会(WS はじめに編) | トップページ | 論文研修会(情報を正確に伝える構造) »

[#Node-RED] ファンクションノードのデバッグどうしてる?

今年はNode-RED UG Osaka勉強会 vol.3 で発表しました。

Node-REDのファンクションノードはJavascriptでプログラミングすることができます。一つのノードで複数の処理を行えますので、ループ処理も一つのノードで実現できます。

その反面、Node-REDであるにもかかわらず、工夫をしないとVisualなデバッグはできません。この発表では、デバッグ方法に応じたテクニックを説明しました。

1.プログラムを一時的に修正して確認する

デバッグの際はプログラムを一部修正して動作を確認します。しかし確認が終われば元に戻さないといけません。できれば簡単に変更して、簡単に戻したいものです。

• デバッグ用に端子を増やしても既存コードは そのままで良い

ファンクションノードの端子は簡単に増減できます。それぞれの端子にmsgを送るには配列をnode.send()しないといけません。しかし、配列の要素と端子数は必ずしも一致しなくてよいので、最終端子をデバッグ用に使えば、簡単にデバッグ情報の追加削除が(フロー的に)できます。

• コメントアウトは[CTRL]+[ / ]

とはいえ、ファンクションノードのプログラムに追記する必要がありますし、console.log()が使いやすい場合もあるでしょう。そのようなデバッグのコードをコメントアウトする際は、[CTRL]+[ / ]を使うと行単位でコメントできます。再度[CTRL]+[ / ]するとコメントが外せます。

2.処理の追跡が容易なこと

デバッグの際は、プログラムがどのように、あるいはどこまで進んだかを確認して、どこが間違っているかを確認します。

• デバッグノードの出力を切り分ける

デバッグノードの出力は標準のデバッグタブのほか、ステータスやコンソールにも出力できます。ほかの情報があまり出力されていない出力先を選べば、確認が容易になるでしょう。

• イベント的なものにはディレイノードや Dashboardのnotificationが便利

今どこを処理しているかを確認したい場合は、短時間表示された後に自動的に消えるディレイノードや Dashboardのnotificationが便利です。特にディレイノードはディレイする時間だけ表示されるので便利です。

• httpStaticにログ等を出力する

大量なログの場合、ファイルノードを使って出力する方法があります。その出力先をseting.jsのhttpStaticに指定されたディレクトリに置くと、ブラウザで取り出せるようになります。単純なファイルはもちろん、CSVやHTML形式にすると、色々と応用できるでしょう。

3.プログラム状態を見分けやすいこと

処理の経路ではなく状態を示したい時もあるでしょう。

• ファンクションノードやデバッグノードのstatusで状態を表示

一瞬ではなく状態を表示したままにするのには、ファンクションノードやデバッグノードのstatusが便利です。一度表示すると、新しい情報を表示するまで状態を確認できます。

• Dashboardのtextも便利

Dashboardのtextはブラウザで確認することができます。


このようにファンクションノードのデバッグ方法は多様です。必要に応じて使ってください。

 

このエントリーをはてなブックマークに追加

« 論文研修会(WS はじめに編) | トップページ | 論文研修会(情報を正確に伝える構造) »

Node-RED」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 論文研修会(WS はじめに編) | トップページ | 論文研修会(情報を正確に伝える構造) »