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ノード