一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。
在Node-RED中内置了6类节点,分别是:
- common:公共类节点,例如inject(注入节点)、debug(调试节点)
- function:功能类节点,例如函数、判断、命令行执行
- network:网络类节点,mqtt、http、tcp等通信节点
- sequence:序列类节点,分割、组合、排序消息的节点
- parser:解析类节点,解析csv、html、json、xml、yaml格式的消息
- storage:存储类节点,读写文件、监听文件或目录变化
接下来让我们一个一个了解这些节点的基本用法,在我们了解这些节点的基本用法之前,先掌握一下基本的操作和流程:
-
所有的节点都能通过拖拽到工作区中去
-
双击节点可以编辑详细信息。包括:
- 删除、取消、保存按钮
- 属性编辑:定义节点名称、添加删除节点属性
- 描述编辑:添加节点描述
- 显示:是否显节点名称、更改图标等
- 节点特有配置
- 单选按钮:启用停用节点
-
点击帮助可以查看节点介绍
common(共通)
inject
该节点可以手动或自动触发流,将消息注入流中,消息默认提供了payload和topic两个值。
详细配置:
- 可以向payload注入:流或全局上下文;字符串、数字、布尔、对象;时间戳
- 可以点击“add”按钮添加msg属性
- 可以勾选复选框,延迟一段时间后立即执行一次之后按照重复策略来执行;
示例:
如图,我们创建了一个inject节点,设置payload为时间戳,并且设置每1s执行一次。
debug
在“调试”侧边栏选项卡和运行时日志中显示选定的消息属性。 默认情况下,它会显示msg.payload的值,但您也可以将其设置成显示任意属性,完整消息或JSONata表达式的结果。
详细配置:
- 输出:输出的数据来源,默认为msg.payload
- 目标:输出目标:有调试窗口,在右侧面板中显示;控制台,输出到启动命令行;节点状态
- 名称:定义节点名称
示例:
如图,我们拖拽了一个节点,并配置输出到调试窗口和控制台,并且将inject节点与debug节点连接在一块。
红色为我们的配置,蓝色分别为调试窗口和命令行的输入(我是本地源码编译)
complete
当另一个节点完成对消息的处理时触发流。。
详细配置:
- 属性:可以选择需要监听的一个或多个节点
- 名称:定义节点名称
示例:
catch
捕获由同一标签页上的节点引发的错误。通过监听指定的节点,来捕获错误信息。可以输出以下信息
输出:
error.message :字符串, 错误消息。
error.source.id:字符串 引发错误的节点的ID。
error.source.type:*字符串,*引发错误的节点的类型。
error.source.name:*字符串,*引发错误的节点的名称。(如果已设置)
详细配置:
- 捕获范围:可以选择指定节点活所有节点
- 选择节点:捕获范围为指定节点时,可以多选选择节点
示例:
satatus
获取在同一标签页上的其他节点的状态消息。例如网络组件里的http、tcp节点的状态发生变化了就会触发。注意必须是节点状态有变化的节点才会触发,像inject、debug等不能改变状态就不会触发。
输出:
status.text:*字符串,*状态文本。
status.source.type:*字符串,*报告状态的节点的类型。
status.source.id:*字符串,*报告状态的节点的ID。
status.source.name:*字符串,*报告状态的节点的名称(如果已设置)。
详细配置:
- 报告状态范围:可以选择指定节点或所有节点
- 选择节点:捕获范围为指定节点时,可以多选选择节点
示例:
如图监听了一个http节点:访问百度,当节点状态变化时,就会触发
link in
在流之间创建虚拟连线。该节点与link out节点组合使用,实现一个流流入另一个流,两个流可以是同一个选项卡也可以是不同的选项卡
输入:
必须是link out节点
输出:
link out节点流出的消息
详细配置:
- 选择流出节点:多选流出节点
示例:
link out
在流之间创建虚拟连线。该节点与link int节点组合使用,实现一个流流入另一个流,两个流可以是同一个选项卡也可以是不同的选项卡。
输出:
必须是link in节点
详细配置:
- Mode:发送到所有的link in节点;
- 选择流出的节点
示例:
comment
注释信息,支持Markdown语法
示例(共通)
示例中使用了大部分的共同节点,点击“自定义输入节点”后可以在控制台查看输出信息。
下载并导入代码中的“共通节点.json”可以查看完整示例