node-red

Node-RED 0.20の新機能 その3

3/12(日本時間だと3/13)にNode-REDの0.20がリリースされました。

せっかくなのでNode-REDのブログに投稿されているVersion 0.20 releasedの内容を試してみようと思います。

その1の記事はこちら

その2の記事はこちら


Adding env vars to a Subflow template

サブフローのテンプレートで環境変数が設定できるようになりました。

以前からNode-RED実行環境の環境変数を取得というのはできたのですが、今回、サブフロー内でのみ参照できる環境変数を設定することが可能になりました。

subflow-env1.png

サブフローのテンプレートで「プロパティを編集」をクリックすると編集ダイアログが表示されます。

そのダイアログに 環境変数という欄があり、「追加」ボタンをクリックすることで環境変数を設定できます。

上図では ENV1 という環境変数に VAL1 という値を設定しています。

これでこのサブフロー内で ENV1 という環境変数が参照できるようになるはずです。

確認のため下図のようなサブフローを作成してみます。

subflow-env2.png

changeノードを置いただけですが、changeノードでは環境変数の ENV1 の値を paylod にセットするように定義します。

subflow-env3.png

そしてこのサブフローを使うフローを作成します。

subflow-env4.png

フローを実行すると payload に環境変数から取得した値 VAL1 が設定されていることがデバッグタブからわかります。

subflow-env5.png


サブフロー内の環境変数の特徴

サブフローに定義できる環境変数ですが、いくつかの特徴を持っています。

一つは、実行環境の環境変数が文字列のみ設定可能なのに対してサブフロー内の環境変数は


  • string

  • number

  • boolean

  • JSON

  • Buffer

  • 他の環境変数

を設定することが可能です。

次に、参照しようとした環境変数がサブフローで定義されていない場合は実行環境の環境変数を探しに行くということです。

これは、実行環境の環境変数を上書きすることができるとも言えます。

(あくまでサブフロー内の話で実行環境の環境変数の値は変わりません)

あと最後に、これはサブフロー内に限りませんが環境変数の値が取得できなかった場合、つまりサブフローでも実行環境でも設定されていない環境変数を参照した場合、取得される値は ""(空文字)になります。undefined ではないことに注意してください。

以上、サブフローテンプレートでの環境変数の設定でした。