Joinノードを使う(その3)

ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はJoinノードの3回目です。

確認するサンプルは、前回に引き続き「読み込み > サンプル > flows > node-red > sequence > join > 02 - Manual join mode」です。

msg.completeを使って結合する


3段目のフローから見ていきます。ざっくりとした流れは以下のとおりです。
  • Templateノードで「msg.payload」に改行区切りの文字列を指定する
  • Splitノードでmsg.payloadの文字列を改行で区切って複数のメッセージに分離する
  • Functionノードでは、受信したメッセージが特定の条件を満たしていた場合に「msg.complete」に「true」を指定する
    • 条件:msg.payloadにBananaまたはKiwiが指定されていたら
  • Joinノードでは、受信したメッセージのmsg.completeプロパティが設定されていたらメッセージを送信する(それまでに受信したメッセージはカンマで区切って文字列結合する)
Templateノード

Splitノード

Joinノード

実行すると、msg.completeプロパティが指定されるまでに受信したメッセージが結合されたログが出力されます。


メッセージを結合して配列にする


ここまでは結合した値が文字列でしたが、4段目のフローでは配列にします。TemplateノードとSplitノードは上述のサンプルと同じなので省略します。ポイントはJoinノードの出力が「配列」に設定されている点です。


これを実行すると、以下のようにmsg.payloadに文字列配列が指定されていることを確認できます。


まとめ

このへんで一旦まとめておきます。
  • 手動モードでは「msg.complete」プロパティを指定するとメッセージの結合を区切ることができます
  • 「msg.complete」を指定するまでに入力されたメッセージが結合されます
  • 結合後のデータ型は文字列の他に配列が指定できます
    • たぶん、この後のサンプルで紹介することになると思いますが、データ型は他にも選択肢があります
Joinノードシリーズはもう少し続きます。

コメント

このブログの人気の投稿

Execノードを使う

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

Joinノードを使う(その4)