3/12(日本時間だと3/13)にNode-REDの0.20がリリースされました。
せっかくなのでNode-REDのブログに投稿されているVersion 0.20 releasedの内容を試してみようと思います。
Adding env vars to a Subflow template
サブフローのテンプレートで環境変数が設定できるようになりました。
以前からNode-RED実行環境の環境変数を取得というのはできたのですが、今回、サブフロー内でのみ参照できる環境変数を設定することが可能になりました。

サブフローのテンプレートで「プロパティを編集」をクリックすると編集ダイアログが表示されます。
そのダイアログに 環境変数という欄があり、「追加」ボタンをクリックすることで環境変数を設定できます。
上図では ENV1 という環境変数に VAL1 という値を設定しています。
これでこのサブフロー内で ENV1 という環境変数が参照できるようになるはずです。
確認のため下図のようなサブフローを作成してみます。

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

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

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

サブフロー内の環境変数の特徴
サブフローに定義できる環境変数ですが、いくつかの特徴を持っています。
一つは、実行環境の環境変数が文字列のみ設定可能なのに対してサブフロー内の環境変数は
- string
- number
- boolean
- JSON
- Buffer
- 他の環境変数
を設定することが可能です。
次に、参照しようとした環境変数がサブフローで定義されていない場合は実行環境の環境変数を探しに行くということです。
これは、実行環境の環境変数を上書きすることができるとも言えます。
(あくまでサブフロー内の話で実行環境の環境変数の値は変わりません)
あと最後に、これはサブフロー内に限りませんが環境変数の値が取得できなかった場合、つまりサブフローでも実行環境でも設定されていない環境変数を参照した場合、取得される値は ""(空文字)になります。undefined ではないことに注意してください。
以上、サブフローテンプレートでの環境変数の設定でした。