Syntax Error.

[Sy] ローカルで作成した Node-RED のフローの情報はどこに保存されているのか?

2018/02/05

前の記事で Node-RED のフローをローカル環境(Mac)で作成しましたが、 作成したフローの情報がどこに保存されているのか 気になったので探してみました。

フローを作った際の記事はこちらです。

⇒ [Sy] Node-RED ではじめてのフローを作ってみる

フローは作成後、 デプロイ してから実行できるようになります。また作成したフローは Node-RED を一度終了して、再起動しても情報を保持していまいた。

このフローの情報はどこになるのか?が気になったので、調べてみました。

どうやら Node-RED が動いているディレクトリ内には無いらしい

実はフローを作る前に一旦 node_modulesディレクトリも含めてすべてのファイルを git で管理するようにしていました。

そしてフローを作成後、何かしらファイルの新規作成や更新などがどこかに見つかるのでは?と予想。

ですが、フロー作成(&デプロイ)後に git status でファイルの変更があったかどうか調べましたが、

$ git status
On branch master
nothing to commit, working tree clean

↑まったく変化無しでした。

どこか他のサーバと通信してたりするのかな?と思い、とりあえず Node-RED を再起動してみました。

再起動してみると、ログに答えが書いてあった

再起動した際にターミナルに出力されたログを見ると、こんなものがありました。

$ 5 Feb 09:06:20 - [info] Flows file     : /Users/utano320/.node-red/flows_utano320noMacBook-Pro.local.json

Flows file とあります。探していた情報の手がかりがここにありました。

ホームディレクトリの下に .node-red というディレクトリが作成されているらしく、その下に JSONファイルがあるようです。

JSONファイルの中身を確認

ということで JSONファイルの中身を確認してみると、以下のようになってました。

$ cat /Users/utano320/.node-red/flows_utano320noMacBook-Pro.local.json | jq
[
  {
    "id": "3b2eb258.45127e",
    "type": "tab",
    "label": "フロー 1",
    "disabled": false,
    "info": ""
  },
  {
    "id": "3c432edd.692f72",
    "type": "inject",
    "z": "3b2eb258.45127e",
    "name": "「Hello Node-RED!」",
    "topic": "",
    "payload": "Hello Node-RED!!",
    "payloadType": "str",
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": 0.1,
    "x": 200,
    "y": 140,
    "wires": [
      [
        "9cfde147.8ed76"
      ]
    ]
  },
  {
    "id": "9cfde147.8ed76",
    "type": "debug",
    "z": "3b2eb258.45127e",
    "name": "",
    "active": true,
    "tosidebar": true,
    "console": true,
    "tostatus": false,
    "complete": "payload",
    "x": 540,
    "y": 140,
    "wires": []
  }
]

ざっくりとですが、座標とかノードの種類とかノード間の接続状態とか色々持ってそうですね。

ひとこと

今回の環境は、ディレクトリ内に収めたかったんですがユーザのホームディレクトリ配下に設定等持つようになっているみたいなので、この辺もうちょっと調べたいです。