物联网平台Node-RED系列(三):Node-RED公共节点的使用
在Node-RED中默认安装有42个节点,分为6大类,分别是
- 公共节点 用于调试,注入消息,跨流操作
- 功能节点 逻辑判断,函数处理,命令行执行,
- 网络节点 使用各种通信,http,websocket,tcp,udp
- 序列节点 对消息体进行格式化,分割,排序
- 解析节点 解析html,csv,json,xml,yaml
- 存储节点 读取,写入文件,监听文件目录
有些节点只有出口没有入口,有些节点有入口却没有出口,还有一些节点既有出口也有入口,也有一个节点既没有入口也没有出口。处理不同的数据,编写复杂的逻辑需要使用不同的节点.
每一个节点的配置区域底部都有一个有效单选,可以将该节点设置为失效或有效。
这次我们一起来研究一下公共节点这一模块的所有节点
该模块共有8个节点分别是
- inject 手动或定期地将消息注入流中。
- debug 打印流中的数据
- complete 当另一个节点完成对消息的处理时触发流
- catch 捕获在同一个流中的所有或指定节点引发的错误。
- status 获取在同一流所有节点或指定节点的状态消息
- link in 在流之间创建虚拟连线。
- link out 在流之间创建虚拟连线。
- comment 可用于向流添加注释的节点
让我们来一个一个地分析如何使用这些节点完成Iot中流的处理。
inject
该节点的作用是手动或定期得将消息注入流中,可以是文本,变量,表达式,时间戳等。该节点前面没有可以流入的节点,消息体只能往后流。
点击节点的前部分可以触发该节点,也可以设置该节点为循环触发。
该节点单独使用没有任何意义,我可以和debug
节点放到一起来进行演示。
编写一个inject节点和debug
节点,将它们连接在首尾相连.inject在前,debug在后,部署之后,点击inject节点的头部,就能在调试面板里看到被注入到消息体的内容了
debug
该节点用于调试流中的消息体,只能用于打印,无法看到真正的堆栈,使用方法是,将该节点连接到一个可输出的节点后,配置要打印的参数,以msg开头,默认打印msg.payload。也可以打印消息体的全部内容,只需要在配置该节点时选择,与调试输入相同。此外还要注意要勾选控制台选项,只有这样才能在调试面板打印出消息体。
缺少图片
由于是web拖拽式来创建流,不是通过IDE编程的方式,所有无法通过步进的方式来调试程序。
complete
当另一个节点完成对消息的处理时会触发该节点。可以配置用于监控那些节点。没有输入,只需要将该节点拖拽到流中即可,不需要与现有流中的其他节点连线。比如我们要在发送完邮件后触发一些逻辑,就可以使用这个节点来监听发送邮件的节点。并不是所有的节点都可以被监听。
如下图我们配置complete监听inject节点的完成,触发后在debug节点打印由complete触发的调试流程
缺少图片
catch
catch节点是为了处理流中报错的节点,有时程序并不像我们想的那样健壮,也会有很多意外情况发生,这时候我们就可以使用catch节点来监听这些节点的错误信息,进行上报,或者给出友好提示。可以配置捕获那些节点的错误信息。
输出的信息为
error对象 | 类型 | 描述 |
---|---|---|
error.message | 字符串 | 错误消息。 |
error.source.id | 字符串 | 引发错误的节点的ID。 |
error.source.type | 字符串 | 引发错误的节点的类型。 |
error.source.name | 字符串 | 引发错误的节点的名称。(如果已设置) |
catch节点的设置
status
status是用于监控某些节点的状态变化,比如http节点,tcp,udp节点,只有节点存在状态的改变,被status节点监听之后才会被触发,而想inject,debug节点是不存在状态改变的,所以即使被status监听了也不会被触发。
下面这个即使使用status监听所有节点的状态改变,但只有http节点触发了。有关http请求节点后面也会讲到。
该节点的输出信息为
status消息体 | 类型 | 描述 |
---|---|---|
status.text | 字符串 | 状态文本。 |
status.source.type | 字符串 | 报告状态的节点的类型。 |
status.source.id | 字符串 | 报告状态的节点的ID。 |
status.source.name | 字符串 | 报告状态的节点的名称(如果已设置)。 |
link in
link in
节点是用于在流之间创建连接,是为了实现将另一个流流入当前的流中,即设置当前流的上游。如果一个流存在link in
节点,那么该流会被流入,对拥有 link out
的流可见,也可以配置包含link out
节点的流 link in
与link out
必须搭配使用, 后者为前者的上级。
link out
将当前流流出,能够配置下一级的流,或节点.只能配置含有link in
的节点作为下一级或下游。
用于二个流之间的通信。
如下图
commont
用于备注当前流。相当于代码中的注释。不会被执行。没有输入也没有输出。
- 分享
- 举报
-
浏览量:18501次2021-01-06 19:08:06
-
浏览量:14253次2021-01-14 18:10:48
-
浏览量:30124次2021-01-05 15:11:35
-
浏览量:25467次2020-12-31 14:58:17
-
浏览量:81036次2020-12-28 16:39:38
-
浏览量:26828次2021-01-25 17:57:21
-
浏览量:19387次2021-01-22 19:13:39
-
浏览量:32789次2021-02-07 17:30:47
-
浏览量:15996次2021-02-08 15:04:50
-
浏览量:34956次2021-02-08 11:42:45
-
浏览量:22937次2021-03-15 15:40:13
-
浏览量:13043次2021-02-20 17:52:54
-
浏览量:20297次2021-02-20 17:22:26
-
浏览量:12545次2021-06-15 10:26:13
-
2021-04-12 20:00:58
-
浏览量:13963次2021-03-24 16:14:07
-
浏览量:14266次2021-03-16 10:46:12
-
浏览量:15252次2021-07-29 17:28:08
-
浏览量:630次2021-01-14 18:30:53
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
这把我C
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明