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