はじめてのフロー

Node-REDを起動してから、ローカルブラウザでhttp://localhost:1880を指定します。 IPアドレスまたはNode-REDインスタンスの名称がわかっていれば、以下のように別のマシンからいつでもアクセスすることができます。 http://{Node-RED-machine-ip-address}:1880

1. Injectノードの追加

Injectノードはノード上のボタンをクリック、またはInject間隔を設定することにより、 フローにメッセージを流すことができます。

パレットからワークスペース上にInjectノードをドラッグします。

サイドバーの情報タブ開いて(Ctrl-Space、またはドロップダウンメニュー)、選択します。

ノードのプロパティや振る舞いの情報を表示するには 追加したInjectノードを選択します。

2. Debugノードの追加

Debugノードはサイドバーのデバッグタブにメッセージを表示させるノードです。 デフォルトではmsg.payloadを表示し、 設定次第ではmsg(メッセージオブジェクト全体)を表示させることもできます。

3. 2つのノードをワイヤーでつなぐ

Inject/Debugノード双方のポートをドラッグして ワイヤーでつなぐことで2つのノードを接続します。

4. デプロイ

この時点ではノードやフローはエディタ上にしか存在しないので サーバにデプロイする必要があります。

デプロイボタンをクリックするとサーバにデプロイできます。

サイドバーのデバッグタブを選択した状態でInjectボタンをクリックすると デバッグタブに数字が表示されるはずです。 デフォルトでは、Injectノードは1970年1月1日からのミリ秒数(タイムスタンプ)をペイロードとして利用します。 それでは、より有用なことをやってみましょう。

5. Functionノードの追加

Functionノードは実際にJavaScriptを書くことができます。

InjectノードとDebugノードの間にFunctionノードを配置します。 今存在しているノードを一度削除する必要があるでしょう。(ワイヤを選択し、キーボードのDeleteキーを打鍵します。)

配置したFunctionノードをダブルクリックすると設定ダイアログが開きます。 Functionノードのフィールドに次のコードをコピーして貼り付けます。

// ペイロードから日付オブジェクトを生成
var date = new Date(msg.payload);
// 日付文字列に変換して再度ペイロードをセット
msg.payload = date.toString();
// 次のノードへmsgオブジェクトを返す
return msg;

完了ボタンをクリックして設定ダイアログを閉じ、デプロイボタンをクリックしてデプロイします。

Injectボタンをクリックするとサイドバーのデバッグタブに、 より読みやすいタイムスタンプが表示されます。


ソース

この例で作成したフローは以下のJSONで表現されます。 このJSONをコピーして読み込みダイアログに貼り付けることで、フローをエディタに簡単にインポートすることができます (インポートはCtrlキーを押しながらiキー、またはドロップダウンメニューから選択可能)。

[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]},{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]},{"id":"2921667d.d6de9a","type":"function","name":"Format timestamp","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"x":440,"y":200,"wires":[["58ffae9d.a7005"]]}]