参考官方文档创建一个转换小写字符串的函数节点:
https://nodered.org/docs/creating-nodes/first-node
1: 创建一个文件夹, 目录为:D:\barco\code\nodeJs\node-red-node, 并在文件中添加以下文件:
- package.json
- lower-case.js
- lower-case.html
如下图所示:
package.json
{
"name": "node-red-lower-case",
"version": "1.0.0",
"description": "自定义node-red节点 小写转化",
"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 创建的package.json 文件必须添加下面的node-red 部分,
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);
}
该节点的功能为: 监听节点的input事件, 拿到输入的数据, 并转换为小写后作为输出数据发送给下一个节点,
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文件主要,定义节点属性编辑窗口的样式,如下图:
节点部署
在node-red的用户数据页面, 默认的用户目录的 .node-red 目录下, 执行:
npm install 'D:\barco\code\nodeJs\node-red-node'
测试
如下图, 启动nod-red 服务并测试该自定义的函数节点: