05_Node-RED_节点使用_共通节点

1,202 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情

在Node-RED中内置了6类节点,分别是:

  • common:公共类节点,例如inject(注入节点)、debug(调试节点)
  • function:功能类节点,例如函数、判断、命令行执行
  • network:网络类节点,mqtt、http、tcp等通信节点
  • sequence:序列类节点,分割、组合、排序消息的节点
  • parser:解析类节点,解析csv、html、json、xml、yaml格式的消息
  • storage:存储类节点,读写文件、监听文件或目录变化

接下来让我们一个一个了解这些节点的基本用法,在我们了解这些节点的基本用法之前,先掌握一下基本的操作和流程:

  • 所有的节点都能通过拖拽到工作区中去

  • 双击节点可以编辑详细信息。包括:

    • 删除、取消、保存按钮
    • 属性编辑:定义节点名称、添加删除节点属性
    • 描述编辑:添加节点描述
    • 显示:是否显节点名称、更改图标等
    • 节点特有配置
    • 单选按钮:启用停用节点
  • 点击帮助可以查看节点介绍

2022-01-06 20.54.30.gif

common(共通)

inject

该节点可以手动或自动触发流,将消息注入流中,消息默认提供了payload和topic两个值。

详细配置:

  • 可以向payload注入:流或全局上下文;字符串、数字、布尔、对象;时间戳
  • 可以点击“add”按钮添加msg属性
  • 可以勾选复选框,延迟一段时间后立即执行一次之后按照重复策略来执行;

示例:

如图,我们创建了一个inject节点,设置payload为时间戳,并且设置每1s执行一次。

1.png

debug

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

详细配置:

  • 输出:输出的数据来源,默认为msg.payload
  • 目标:输出目标:有调试窗口,在右侧面板中显示;控制台,输出到启动命令行;节点状态
  • 名称:定义节点名称

示例:

如图,我们拖拽了一个节点,并配置输出到调试窗口和控制台,并且将inject节点与debug节点连接在一块。

红色为我们的配置,蓝色分别为调试窗口和命令行的输入(我是本地源码编译)

2.png

complete

当另一个节点完成对消息的处理时触发流。。

详细配置:

  • 属性:可以选择需要监听的一个或多个节点
  • 名称:定义节点名称

示例:

3.png

catch

捕获由同一标签页上的节点引发的错误。通过监听指定的节点,来捕获错误信息。可以输出以下信息

输出:

error.message :字符串, 错误消息。

error.source.id:字符串 引发错误的节点的ID。

error.source.type:*字符串,*引发错误的节点的类型。

error.source.name:*字符串,*引发错误的节点的名称。(如果已设置)

详细配置:

  • 捕获范围:可以选择指定节点活所有节点
  • 选择节点:捕获范围为指定节点时,可以多选选择节点

示例:

4.png

satatus

获取在同一标签页上的其他节点的状态消息。例如网络组件里的http、tcp节点的状态发生变化了就会触发。注意必须是节点状态有变化的节点才会触发,像inject、debug等不能改变状态就不会触发。

输出:

status.text:*字符串,*状态文本。

status.source.type:*字符串,*报告状态的节点的类型。

status.source.id:*字符串,*报告状态的节点的ID。

status.source.name:*字符串,*报告状态的节点的名称(如果已设置)。

详细配置:

  • 报告状态范围:可以选择指定节点或所有节点
  • 选择节点:捕获范围为指定节点时,可以多选选择节点

示例:

如图监听了一个http节点:访问百度,当节点状态变化时,就会触发

5.png

link in

在流之间创建虚拟连线。该节点与link out节点组合使用,实现一个流流入另一个流,两个流可以是同一个选项卡也可以是不同的选项卡

输入:

必须是link out节点

输出:

link out节点流出的消息

详细配置:

  • 选择流出节点:多选流出节点

示例:

6.png

link out

在流之间创建虚拟连线。该节点与link int节点组合使用,实现一个流流入另一个流,两个流可以是同一个选项卡也可以是不同的选项卡。

输出:

必须是link in节点

详细配置:

  • Mode:发送到所有的link in节点;
  • 选择流出的节点

示例:

7.png

comment

注释信息,支持Markdown语法

示例(共通)

示例中使用了大部分的共同节点,点击“自定义输入节点”后可以在控制台查看输出信息。

8.png 下载并导入代码中的“共通节点.json”可以查看完整示例

github.com/wangwei5732…

9.png