Node-RED自定义节点

官网:创建节点 : Node-RED (nodered.org)

一,创建示例节点

1、创建目录

1)、说明

创建一个存放代码文件的目录,并在目录下创建下面文件

序号  文件说明
1package.jsonpackage.json文件是一个标准的用于描述NodeJs模块的文件,用于将其打包为一个npm模块
2lower-case.js用于定义节点的功能
3lower-case.html 用于定义节点的属性、编辑对话窗口和帮助内容

     
       
2)、创建目录


1,创建文件夹

在node-red-app\node_modules\@node-red\nodes\core目录下创建自定义节点目录【mynode】

2,创建package.json

根据官方建议在自定义目录下运行npm init命令可以通过向导的方式生成该文件,

3、创建javaScript文件

在建自定义节点目录mynode目录下创建javaScript文件【lower-case.js
lower-case.js】代码如下:

module.exports = function (RED) {
    function lowerCaseNode(n) {
        //调用RED.nodes.createNode函数来初始化所有节点共享的功能。
        RED.nodes.createNode(this, n);
        //节点自身的属性
        this.property = n.property;
        //初始化this
        var node = this;
        // 节点在input事件从流中的上游节点接收消息。
        node.on("input", function (msg, send, done) {
            //将msg.payload的字母小写
            msg.payload = msg.payload.toLowerCase();
            // 如果节点位于流的开头,并响应外部事件生成消息,则应使用send函数在Node对象上:
            node.send(msg);

        });
    }
    RED.nodes.registerType("lower-case",lowerCaseNode);
}
4、创建html文件

在建自定义节点目录mynode目录下创建html文件【lower-case.html

  • category:(string) 节点所在的调色板类别
  • defaults:(object) 节点的可编辑属性
  • credentials:(object) 节点的凭据属性
  • inputs:(数字)节点有多少个输入,要么是 。01
  • outputs:(数字)节点有多少个输出。可以是或更多。0
  • color:(string) 要使用的背景颜色
  • paletteLabel:(string|function) 要在调色板中使用的标签
  • label:(string|function) 要在工作区中使用的标签
  • labelStyle:(string|function) 要应用于标签的样式
  • inputLabels:(string|function) 可选标签,用于将鼠标悬停在节点的输入端口时添加。
  • outputLabels:(string|function) 将鼠标悬停在节点的输出端口上时要添加的可选标签
  • icon:(string) 要使用的图标
  • align:(string) 图标和标签的对齐方式
  • button:(对象)在节点的边缘添加一个按钮
  • oneditprepare:(函数)在构建编辑对话框时调用。请参阅自定义编辑行为
  • oneditsave:(函数)在编辑对话框正常时调用。请参阅自定义编辑行为
  • oneditcancel:(函数)在取消编辑对话框时调用。请参阅自定义编辑行为
  • oneditdelete:(函数)在按下配置节点的编辑对话框中的删除按钮时调用。请参阅自定义编辑行为
  • oneditresize:(函数)在调整编辑对话框大小时调用。请参阅自定义编辑行为
  • onpaletteadd:(函数)在将节点类型添加到调色板时调用。
  • onpaletteremove:(函数)在从调色板中删除节点类型时调用。

lower-case.html】代码如下:

<!-- 向编辑器注册的主节点定义 -->
<script type="text/javascript">
    RED.nodes.registerType('lower-case', {
        category: 'function',
        color: '#a6bbcf',
        defaults: {
            name: {value: ""},
            // 自定义节点属性
            property:{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> 名称</label>
        <input type="text" id="node-input-name" placeholder="名称"/>
    </div>
    <!-- 填写节点属性 -->
    <div class="form-row">
        <label for="node-input-property"><i class="fa fa-ellipsis-h"></i> 属性</label>
        <input type="text" id="node-input-property" placeholder="属性"/>
    </div>
</script>
<!-- 帮助文本 -->
<script type="text/html" data-help-name="lower-case">
    <p>当前节点主要功能是实现将message的payloads转换为小写字符,并传入一下节点。</p>
</script>

5、安装自定义模块
本例中我的自定义模块所在的本地路径是D:\work\JavaTeam\workspace\IdeaProjects\node-red\packages\node_modules@node-red\nodes\core\mynode,大家可以改为自己本地的路径
npm install D:\work\JavaTeam\workspace\IdeaProjects\node-red\packages\node_modules\@node-red\nodes\core\mynode

二,重启

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值