この記事はSRA Advent Calendar 2018の20日目の記事です。
こんにちは! 関西事業部の佐々木です。
設定ダイアログを見直す
Node-REDに慣れてくると、ポンポンnodeを置いてサクサクつないでflowを書けるようになってきます。
さらにcustom node(Node-REDのインストール時に入っているnode以外のnode)を追加して利用したりもできるようになってきます。
確かに色々なnodeを使いこなすことも大事ですが、今使っているnodeを深く理解することもflowを書く上で役に立ちます。
特にnodeをダブルクリックして開く設定ダイアログについて、いつもデフォルトのままだという方は一度じっくりとその内容を確認してみてはどうでしょうか。
switch node
上級者ならムムと思う設定ですが、msg.payloadの値(数値)が
- 100以下ならoutput1から
- 200以下ならoutput2から
- 300以下ならoutput3から
出力されます。
では、もしmsg.payloadに50が入っていたらどうなるでしょう?
実はこの場合、output1、output2、output3全てが出力されます。
この動作を期待しているのなら別にこれでいいのですが、もしも
- 100以下ならoutput1のみから
- 100より大きく200以下ならoutput2のみから
- 200より大きく300以下ならoutput3のみから
出力したい場合は設定ダイアログで「最初に合致した条件で終了」を選択します。
こうすることで条件を満たした場合はそれより下の条件を判定することがなくなります。
switch nodeはNode-REDを始めてすぐに使い始めることが多く、その後も使う頻度が多いため、あまりじっくり調べないのかもしれませんが、この設定をデフォルトのままにしておくことが多いように思えます。
処理コスト的にもこの設定は常に選択しておくほうがいいと思うので、期待する動作に差支えがなければ設定しておくクセをつけておくことをお勧めします。
http request node
http request nodeで外部のAPIに簡単にアクセスできるのは非常に便利です。
そして最近ではWeb APIではJSONでデータをやり取りすることも多いです。
レスポンスのJSONを文字列を扱いやすいようにオブジェクトに変換するには以下のようにJSON nodeをつなげればOKです。
ところが、http request nodeの設定ダイアログで出力形式「JSON」を選択すればJSON nodeは必要ありません!
debug node
他にも知っておいて欲しいのはdebug nodeの設定です。
「さすがにdebug nodeは使いこなしているよ」という人も多いかもしれませんが、Node-REDのバージョン0.18から「ノード状態(32文字)」という設定が増えています。
この設定をONにするとnodeのstausとしてdebugの内容が(最大32文字)表示されます。
これが実は意外と便利で、デバッグウィンドウにたくさん表示されている場合でもこのdebug nodeに(最後に)表示されている内容がすぐに確認できるし、デバッグウィンドウの内容はNode-REDのフローエディタを開いていないと表示されませんが、このstatusは後でフローエディタを開いても(最後に)表示された内容を見ることができます。
今回は3つのnodeについて設定ダイアログを活用することについて述べましたが、もう少し紹介したいnodeがあるので続きを別記事で書きます。