Node-REDとは
Node-REDはフローベースドプログラミング(flow-based programming)ツールであり、元はIBM Emerging Technology Servicesチームによって開発され、JS Foundation配下のプロジェクトを経て、2019年3月よりNode.js FoundationとJS Foundationが合併して設立されたOpenJS Foundationにホストされています。
Node-RED User Group Japan - 概要
- ブラウザ上のエディタを使って、ノーコード、ローコードで開発できるOSSです。
- デザイナ上で、[ノード]を作成・処理を記載、[ノード]間を接続し、データを受け渡して処理を行うフローベースのプログラミングです。
- Node.js上で動作しています。IoT機器、PC端末などのエッジデバイス、フロントエンド、バックエンドまで動作させる事が出来ます。
実行環境
- WSL上のUbuntu 18.04 LTS
- Dockerインストール済み
Dockerで起動。
- 以下コマンドを実行
- /home/user1/dev/node-redでコマンドを実行
- /home/user1/dev/node-red/.node-red を永続化しています。
docker run -it -p 1880:1880 -v /home/user1/dev/node-red/.node-red:/data --name mynodered nodered/node-red
- 正常に実行されると以下のメッセージが表示されます。
26 Jun 07:47:08 - [info] Server now running at http://127.0.0.1:1880/
26 Jun 07:47:08 - [info] Starting flows
26 Jun 07:47:08 - [info] Started flows
- ブラウザで
http://localhost:1880/
にアクセスします。 - エディタに無事アクセス出来ました。
チュートリアルを実施
-
公式のチュートリアル - 初めてのフローを実施します。
-
Injectノード・Debugノードを追加、2つのノードをワイヤーでつなぎます。
- デプロイボタンをクリックし、デプロイします。
- デバッグタブを選択
- プログラムを実行したいと思います。
- [Inject]ノードのボタンをクリックしましょう。タイムスタンプがメッセージ出力されるはずです。
- 想定通り、タイムスタンプが出力されました。
Hello Worldを作成
-
少し、改良して"Hello World"の文言を出力してみます。
-
[Injection]ノードを削除、[Function]ノードを追加します。
- [Function]ノードをダブルクリックし、[コード]に以下入力します。
msg.payload = "Hello! World";
return msg;
-
[完了]ボタンをクリックします。
-
[Injection]ノードを追加し、以下編集します。
- 再び、[Injection]ノードと[Function]ノードと[Debug]ノードをワイヤーでつなぎます。
-
先ほどの手順と同様に[デプロイ]ボタンをクリックします。
-
[Injection]ノードをボタンをクリックし、プログラムを実行します。
- 以下、無事に"Hello World"が出力されました。