基於Linux創建簡單的Node-RED節點


參考自:官方文檔

概述

由於一個Node-RED節點需要包含三類文件

  • 一個定義節點功能的 JavaScript 文件,
  • 一個 html 文件,用於定義節點的屬性、編輯對話框和幫助文本。
  • 文件用於將其全部打包為 npm 模塊。package.json

創建一個目錄,在該目錄中,創建以下文件:

  • package.json
  • lower-case.js
  • lower-case.html

package.json

這是 Node.js 模塊用來描述其內容的標准文件。生成此文件使用如下命令

npm init

並根據提示將文件命名為node-red-contrib-example-lower-case

其他提示可以按回車鍵默認

生成后,還必須添加一個部分:node-red

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

lower-case.js

創建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);
}

 

lower-case.html

創建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="fa fa-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>

在 Node-RED 中測試節點

進入到node-red的安裝目錄下,運行npm install <上面的三個文件的目錄路徑>

# 進入到node-red目錄
cd ~/.node-red
# 使用npm打包上面三個文件的目錄
npm install ~/dev/node-red-contrib-example-lower-case

運行成功后,在node-red的下的node_modules目錄下,能看到生成的node-red-contrib-example-lower-case

重新啟動 Node-RED ,可以查看到我們自定義的節點了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM