injectノードを使う

前回に引き続き、ゴミサンプルで使ったノードの動きを見ていきます。今回はinjectノードです。injectノードを利用すると手動でフローを起動できます。ついでにmsgオブジェクトのプロパティに値を設定することもできます。公式ドキュメントはこちら

injectノードのプロパティ

フローエディタでinjectノードをダブルクリックしてプロパティを確認します。msgオブジェクト配下のプロパティにいろいろな値を設定してみます。選択肢はこんな感じ。


  • flow.
  • global.
  • 文字列
    • 文字列を指定できます
  • 数字
    • 数字を指定できます
  • 真偽
    • true/falseを指定できます
  • JSON
    • JSONオブジェクトを指定できます
  • Buffer
    • バイナリ値を指定できます
    • IoT系だとこういうInputも必要なのかもしれません
  • 日時
  • JSONata式
    • Debugノードの記事でもでてきたJSONata式、JSONに対してクエリを書いて値を抽出して指定できそうです
  • 環境変数
  • msg.
    • msgオブジェクト内のプロパティの値を指定できます
    • プロパティ間の値のコピーができるということですかね
flow.とglobal.は利用するのに準備がいりそうなので、今の段階ではおいといて、他の選択肢を一通り指定してみました。


debugノードでmsgオブジェクト全体を出力するようにすると、ログには以下のように出力されます。
      {
        _msgid: '496f3dcab49c367e',
        payload: 'Hello World!',
        number: 777,
        boolean: true,
        json: { key: 'value' },
        buffer: <Buffer 30 31 30 31 30 31>,
        datetime: 1631801070247,
        env: '/Users/wataru',
        msgid: '496f3dcab49c367e'
      }
  
プロパティ下部には繰り返し設定があります。
  • 指定した時間間隔
  • 指定した時間間隔、日時
  • 指定した日時
「指定した時間間隔」を選択するとデプロイした直後から繰り返しinjectが実行されます。要はcronみたいなもんですね。

まとめ

外部からフローを実行するのが難しい場合は、injectノードを使ってエミュレートできます。cronっぽい動きをさせたいなら繰り返し機能ですね。これも何かと便利そうです。



コメント

このブログの人気の投稿

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

Execノードを使う

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