Node-red使用 基础篇(2)节点使用

在 Node-red 使用中,节点的认识与使用是重中之重,节点是构成流程的重要组成。

目录

1、通用节点

1.1 inject节点

1.2 debug节点

1.3 complete节点

1.4 catch节点

1.5 status节点

1.6 link in 和 link out节点

2、功能节点

 2.1 function 节点

2.2  switch 节点

2.3 change 节点

2.4 range 节点

​2.5 template 节点


1、通用节点

1.1 inject节点

        手动或定期得将消息注入流中。消息的有效荷载可以为多种类型,包括字符串,JavaScript对象或当前时间。 

        消息的有效荷载一般情况存放在 msg.payload 中,但是在使用时,我们可以根据自己的需求决定把数据存储在哪。

注意:选项“时间间隔” “特定时间” 使用了标准cron系统。这意味着因此“20分钟”并不表示在此之后20分钟,而是每小时的20分钟,40分钟。如果您希望设定为从现在开始的每20分钟,那么请使用“间隔” 选项。

注意: 如果您想在字符串中包含换行符,必须使用“功能”节点创建有效荷载。

1.2 debug节点

        在“调试”侧边栏选项卡和运行时日志中显示选定的消息属性。 默认情况下,它会显示msg.payload 的值,但您也可以将其设置成显示任意属性,完整消息或JSONata表达式的结果。

        输出:msg.payload 则会打印出该数据的 payload 数据,也可根据自己需求修改,名称的对应如下图所示。

1.3 complete节点

         当另一个节点完成对消息的处理时触发流,这个节点可以与没有输出端口的节点一起使用,例如在使用电子邮件发送节点来发送邮件后触发一个流。

1.4 catch节点

        捕获由同一标签页上的节点引发的错误。

1.5 status节点

        获取在同一标签页上的其他节点的状态消息。

1.6 link in 和 link out节点

        在流之间创建虚拟连线,类似于网络标号,使得整个流程框图更加美观、简洁。

2、功能节点

 2.1 function 节点

        定义对接收到的消息进行处理的JavaScript代码(函数的主体)。

        该节点较为重要:大部分的数据处理、逻辑处理都由该节点来实现。

        如果需要上一节点传递的值或对象,则先将数据获取,再修改赋值操作。下方是一个简单的生成随机数的使用,把时间戳用作触发使用,并未使用到时间戳中的数据,且把随机生成的数据存放在 msg.payload 中用于 debug 节点中。

[
    {
        "id": "bf71b31636ce46d9",
        "type": "tab",
        "label": "流程 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "c45bf53c088e465b",
        "type": "inject",
        "z": "bf71b31636ce46d9",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "object",
        "payloadType": "date",
        "x": 160,
        "y": 120,
        "wires": [
            [
                "d2cf86b502c9bad7"
            ]
        ]
    },
    {
        "id": "85c422a1a241ef71",
        "type": "debug",
        "z": "bf71b31636ce46d9",
        "name": "debug 6",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 160,
        "y": 380,
        "wires": []
    },
    {
        "id": "46f8fe31cd8ccf48",
        "type": "link in",
        "z": "bf71b31636ce46d9",
        "name": "link in 1",
        "links": [
            "d2cf86b502c9bad7"
        ],
        "x": 75,
        "y": 260,
        "wires": [
            [
                "02fd03693ff32245"
            ]
        ]
    },
    {
        "id": "d2cf86b502c9bad7",
        "type": "link out",
        "z": "bf71b31636ce46d9",
        "name": "link out 1",
        "mode": "link",
        "links": [
            "46f8fe31cd8ccf48"
        ],
        "x": 245,
        "y": 120,
        "wires": []
    },
    {
        "id": "02fd03693ff32245",
        "type": "function",
        "z": "bf71b31636ce46d9",
        "name": "function 1",
        "func": "\n\n//生成从minNum到maxNum的随机数\nfunction randomNum(minNum,maxNum){ \n    switch(arguments.length){ \n        case 1: \n            return parseInt(Math.random()*minNum+1,10); \n        break; \n        case 2: \n            return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); \n        break; \n            default: \n                return 0; \n            break; \n    } \n} \n\nmsg.payload = randomNum(10,100);\n\n\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 180,
        "y": 260,
        "wires": [
            [
                "85c422a1a241ef71"
            ]
        ]
    }
]

2.2  switch 节点

        按属性值来分配消息的传送路线,有几个判断条则有几个输出接口。

2.3 change 节点

        设置更改删除移动消息,流上下文或全局上下文的属性。

2.4 range 节点

        将数值映射为另一个区间的数值。如果有 js 基础,可以直接使用一个 function 实现,如 2.1 所示。下方本节点 function 函数的代码。

msg.payload = Math.random();
return msg;

 2.5 template 节点

        根据提供的模板设置属性,可以用于网页响应。

        http in 节点配置,后面再详细介绍该节点使用。

        响应代码 

        响应结果 

[
    {
        "id": "bf71b31636ce46d9",
        "type": "tab",
        "label": "流程 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "89328ccad706c2e0",
        "type": "template",
        "z": "bf71b31636ce46d9",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "html",
        "syntax": "mustache",
        "template": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"utf-8\">\n<title>title</title>\n</head>\n<body>\n    <h1>我的第一个标题</h1>\n    <p>我的第一个段落。</p>\n</body>\n</html>",
        "output": "str",
        "x": 250,
        "y": 340,
        "wires": [
            [
                "5e0e21c0aecdd937"
            ]
        ]
    },
    {
        "id": "83756ef73c9693e1",
        "type": "http in",
        "z": "bf71b31636ce46d9",
        "name": "",
        "url": "/1",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 110,
        "y": 340,
        "wires": [
            [
                "89328ccad706c2e0"
            ]
        ]
    },
    {
        "id": "5e0e21c0aecdd937",
        "type": "http response",
        "z": "bf71b31636ce46d9",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 390,
        "y": 340,
        "wires": []
    }
]

下期出 网络节点 使用,欢迎关注。

 谢谢观看学习!!!

希望可以帮助到大家!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值