Node-REDのノードを自作してみる

Web

この記事の内容

この記事では、Node-REDに配置するノードを自作する方法を紹介します。

Node-RED User Group Japanの記事を参考に作成しています。

はじめてのノード開発 : Node-RED日本ユーザ会

 

ノードの開発

今回は、入力で受け取った文字列を小文字に変換するノードを作成します。

そのために、以下のファイルを作成する必要があります。

package.json Node.jsモジュールの内容を記述するために標準的に使われるファイルです。
lower-case.html ノードの入力/出力数や、ノードのアイコン、ヘルプなどの情報を保持します。
lower-case.js ノード内の処理を記述します。

package.jsonの作成

任意の場所に「lower-case」フォルダを作成します。

作成した「lower-case」フォルダに移動します。(Windowsの場合、コマンドプロンプトでcdコマンド実行)

そして、以下のコマンドを実行します。

npm init

設定する値を、対話形式で聞かれますが、ここではいったんすべてEnterキーを押下で問題ありません。

「lower-case」のフォルダにpackage.jsonが作成されると思います。

 

その後、以下の様にnode-redセクションを追加します。

{
    "name" : "node-red-contrib-example-lower-case",
    ...
    "node-red" : {
        "nodes": {
            "lower-case": "lower-case.js"
        }
    }
}

これで、package.jsonの作成は完了です。

lower-case.htmlの作成

「lower-case」フォルダ以下に、lower-case.htmlを作成します。

内容は以下の通り設定してください。

<script type="text/javascript">
    RED.nodes.registerType('lower-case',{
        category: 'function',
        color: '#a6bbcf',
        defaults: {
            name: {value:""}
        },
        inputs:1,
        outputs:1,
        icon: "file.png",
        label: function() {
            return this.name||"lower-case";
        }
    });
</script>

<script type="text/html" data-template-name="lower-case">
    <div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
</script>

<script type="text/html" data-help-name="lower-case">
    <p>A simple node that converts the message payloads into all lower-case characters</p>
</script>

lower-case.js

「lower-case」フォルダ以下に、lower-case.jsを作成します。

内容は以下の通り設定してください。

module.exports = function(RED) {
    function LowerCaseNode(config) {
        RED.nodes.createNode(this,config);
        var node = this;
        node.on('input', function(msg) {
            msg.payload = msg.payload.toLowerCase();
            node.send(msg);
        });
    }
    RED.nodes.registerType("lower-case",LowerCaseNode);
}

ノードモジュールのインストール

以下のコマンドで作成したノードモジュールをインストールします。

cd C:\Users\my_name\.node_red
npm install [lower-case]フォルダパス

その後、node-redが起動している場合は、node-redを再起動すると、今回作成したノードモジュールがブラウザで選択可能になります。

コメント