參考自:官方文檔
概述
由於一個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 ,可以查看到我們自定義的節點了


