Node-Red 学习笔记1 - 在源码中新增内置节点

在Node-red 二次开发中,若需要新增内置节点,可以采用以下2步实现。

(本文不涉及如何创建节点文件,请参考官网说明,以下操作是基于Node-Red 3.0.0-beta.1源码)

第1步:

在node_modules/@node-red/nodes目录下创建一个文件夹(也可以不创建,直接丢到其下已有的文件夹中)。文件夹名字自己取,我这取的名字叫custom,但要特别注意,文件名不能是lib | icons |node_modules | test | locales中的其中任意一个。(详细见localfilesystem.js里的getLocalNodeFiles(dir)方法)

第2步:

创建好文件夹后,就可以把自己的节点文件放到这个文件夹里了,系统启动时会自动扫描到。用这种方法是不需要把它的package.json放进来的。

看效果:

复制以下代码,可以导入流程。

[{"id":"25e05be9e5fe760d","type":"tab","label":"流程 2","disabled":false,"info":"","env":[]},{"id":"60281404547d2b21","type":"lower-case1","z":"25e05be9e5fe760d","name":"","x":370,"y":200,"wires":[["ad69c4ff1c949e05"]]},{"id":"cdda142825caa213","type":"inject","z":"25e05be9e5fe760d","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"aDFDFFDF","payloadType":"str","x":170,"y":200,"wires":[["60281404547d2b21"]]},{"id":"ad69c4ff1c949e05","type":"debug","z":"25e05be9e5fe760d","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":540,"y":200,"wires":[]}]

相关演示文件的内容(在官网可查)

lower-case.html

<script type="text/javascript">
    RED.nodes.registerType('lower-case1',{
        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-case1">
    <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-case1">
    <p>A simple node that converts the message payloads into all lower-case characters</p>
</script>

lower-case.js 

module.exports = function(RED) {
    function LowerCase1Node(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-case1",LowerCase1Node);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值