在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触发的调试流程
缺少图片
catchcatch节点是为了处理流中报错的节点,有时程序并不像我们想的那样健壮,也会有很多意外情况发生,这时候我们就可以使用catch节点来监听这些节点的错误信息,进行上报,或者给出友好提示。可以配置捕获那些节点的错误信息。 输出的信息为
error对象 类型 描述 error.message 字符串 错误消息。 error.source.id 字符串 引发错误的节点的ID。 error.source.type 字符串 引发错误的节点的类型。 error.source.name 字符串 引发错误的节点的名称。(如果已设置)catch节点的设置
statusstatus是用于监控某些节点的状态变化,比如http节点,tcp,udp节点,只有节点存在状态的改变,被status节点监听之后才会被触发,而想inject,debug节点是不存在状态改变的,所以即使被status监听了也不会被触发。
下面这个即使使用status监听所有节点的状态改变,但只有http节点触发了。有关http请求节点后面也会讲到。
该节点的输出信息为
status消息体 类型 描述 status.text 字符串 状态文本。 status.source.type 字符串 报告状态的节点的类型。 status.source.id 字符串 报告状态的节点的ID。 status.source.name 字符串 报告状态的节点的名称(如果已设置)。 link inlink in节点是用于在流之间创建连接,是为了实现将另一个流流入当前的流中,即设置当前流的上游。如果一个流存在link in节点,那么该流会被流入,对拥有 link out的流可见,也可以配置包含link out节点的流 link in 与link out 必须搭配使用, 后者为前者的上级。
link out将当前流流出,能够配置下一级的流,或节点.只能配置含有link in的节点作为下一级或下游。 用于二个流之间的通信。 如下图
commont用于备注当前流。相当于代码中的注释。不会被执行。没有输入也没有输出。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:物联网平台Node-RED系列(三):Node-RED公共节点的使用 https://www.yhzz.com.cn/a/13260.html