參考官方文檔創(chuàng)建一個(gè)轉(zhuǎn)換小寫字符串的函數(shù)節(jié)點(diǎn):
https://nodered.org/docs/creating-nodes/first-node
1: 創(chuàng)建一個(gè)文件夾, 目錄為:D:\barco\code\nodeJs\node-red-node, 并在文件中添加以下文件:
- package.json
- lower-case.js
- lower-case.html
如下圖所示:

image.png
package.json
{
"name": "node-red-lower-case",
"version": "1.0.0",
"description": "自定義node-red節(jié)點(diǎn) 小寫轉(zhuǎn)化",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"node-red" : {
"nodes": {
"lower-case": "lower-case.js"
}
}
}
通過npm init 創(chuàng)建的package.json 文件必須添加下面的node-red 部分,

image.png
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);
}
該節(jié)點(diǎn)的功能為: 監(jiān)聽節(jié)點(diǎn)的input事件, 拿到輸入的數(shù)據(jù), 并轉(zhuǎn)換為小寫后作為輸出數(shù)據(jù)發(fā)送給下一個(gè)節(jié)點(diǎn),
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>
該html文件主要,定義節(jié)點(diǎn)屬性編輯窗口的樣式,如下圖:

image.png
節(jié)點(diǎn)部署
在node-red的用戶數(shù)據(jù)頁面, 默認(rèn)的用戶目錄的 .node-red 目錄下, 執(zhí)行:
npm install 'D:\barco\code\nodeJs\node-red-node'

image.png
測試
如下圖, 啟動(dòng)nod-red 服務(wù)并測試該自定義的函數(shù)節(jié)點(diǎn):

image.png