何のための記事?
Node-REDをHerokuで運用する際に、Heroku環境では一部機能が動作しない場合があった。
その際、Node-REDの実装を調査する必要があったので関連するメモを整理して投稿します。
※本記事はHerokuと直接関係はありません
1. Node-REDを自作プログラムから動かす
- Node.jsなどは予めインストールしておく。
1.1 導入
$ mkdir node-red-sample
$ cd node-red-sample
$ npm -y init
$ npm install node-red
$ node ./node_modules/node-red/red.js --userDir ./data --settings ./node_modules/node-red/settings.js
ブラウザで http://127.0.0.1:1880/ を開く。
1.2. 解説
上記の手順では、下記のオプションを指定しています。
-
--userDir : 追加するノードなどが保存される場所を指定する
-
--settings : 使用する設定ファイルを指定する
※デフォルトで red.js と同じフォルダに存在するsettings.jsを参照するので--settings以降は省略可能
2. 設定をカスタマイズする
2.1 カスタマイズ方法(1) : settings.js を指定して起動
settings.js を自分用に書き換えてred.jsの起動パラメータに渡す事で、好みの設定で起動するように変更できます。
package.json と同じフォルダに settings.js をコピーする。
$ cp ./node_modules/node-red/settings.js ./
settings.js を書き換えたら下記のようにコマンドを入力して起動する。
$ node ./node_modules/node-red/red.js --userDir ./data --settings ./settings.js
2.2 カスタマイズ方法(2) : settings.js を userDir に入れておく
$ mkdir data
$ cp ./node_modules/node-red/settings.js ./data/
settings.js を書き換えたら下記のようにコマンドを入力して起動する。
$ node ./node_modules/node-red/red.js --userDir ./data
3. エントリーポイント(?)を変更する
エントリーポイントを ./node_modules/node-red/red.js
ではなく、独自のファイルにする方法。
$ cp node_modules/node-red/red.js ./main.js
コピーして作成した main.js を一部修正する。
- var RED = require("./lib/red.js");
+ var RED = require("node-red");
書き換えたら起動する。
$ node main.js --userDir ./data
まとめ
これでローカルでのデバッグできる環境は整いました。