msg.payloadに情報を追加する方法
1.目的
Node-REDで、既存のmsg.payloadに情報を追加する方法を紹介します。
2.情報の追加方法
2-1. 概要の説明
以下のNode-REDのフローで説明します。まず概要を説明します。
デバッグノード①では、payloadに“datetime”だけの情報が出力されています。それに、changeノード②で今年の情報を追加しています。
その結果、デバッグノード③では、”thisYear”のobjectが追加されているのが分かります。
2-2. 追加情報の作成
追加する情報を、フローの上の段で作成しています。
injectノードで日付情報を発行して、それをもとに、干支や和暦の情報を
functionノードでmsg.payloadに記載します。JSON形式と同じobjectの形式で記載します(変数は置き換わります)。
次のchangeノードで、flow.thisYearに保存します。
このflow.thisYearを下の段のフローで元のpayloadに追加します。
2-3. 情報の追加
フローの上の段では、日付情報をmsg.payloadに載せるとともに、flow.thisYearの情報を取得し、msg.payload.thisYearに追加しています。
2-4. 情報の追加方法のまとめ
他にも方法はありますが、ここでは、2か所でmsg.payloadに情報を追加しています。
一つ目は、上段のfunctionノードの中です。
msg.payload = {“干支”:animal[thisYear],”西暦”:year,”令和”:reiwa, “平成”:heisei, “昭和”:syowa, “大正”:taisyo, “明治”:meiji};
もともとのmsg.payloadは,“西暦”:yearです。それに、干支や和暦の年号を追加しています。
2つ目は、下段のchangeノードです。
値の代入を使い、もともとのmsg.payload.datetimeに、flow.this yearをobjectとして追加しています。