核心节点

Node-RED 调色板包含一组默认节点,它们是创建流的基本构建块。本页重点介绍您应该了解的核心节点。

所有节点都包含文档,当您选择一个节点时,可以在“信息”侧边栏选项卡中看到。


Inject node

注入

注入节点可用于通过点击编辑器中节点的按钮手动触发流。它还可以用于以固定的时间间隔自动触发流。

注入节点发送的消息可以设置其 payloadtopic 属性。

payload 可以设置为多种不同类型

  • 流或全局上下文属性值
  • 字符串、数字、布尔值、缓冲区或对象
  • 自 1970 年 1 月 1 日以来的毫秒级时间戳

interval 最长可设置为 596 小时(约 24 天)。如果您考虑的时间间隔大于一天,请考虑使用可以应对停电和重启的调度程序节点。

interval between timesat a specific time 选项使用标准 cron 系统。这意味着 20 分钟将是下一个小时的 20 分钟和 40 分钟,而不是从现在开始的 20 分钟。如果您希望从现在开始每 20 分钟一次,请使用 interval 选项。

自 Node-RED 1.1.0 起,注入节点现在可以设置消息上的任何属性。


Debug node

调试

调试节点可用于在编辑器中的“调试”侧边栏中显示消息。

侧边栏提供了它所发送消息的结构化视图,使其更容易探索消息。

在每条消息旁边,调试侧边栏包括消息接收时间和发送该消息的调试节点的信息。点击源节点 ID 将在工作区中显示该节点。

节点上的按钮可用于启用或禁用其输出。建议禁用或删除任何未使用的调试节点。

该节点还可以配置为将所有消息发送到运行时日志,或将短(32 个字符)发送到调试节点下的状态文本。

关于处理消息的页面提供了更多关于使用调试侧边栏的信息。


Function node

函数

函数节点允许对通过它的消息运行 JavaScript 代码。

有关使用函数节点的完整指南,请点击此处


Change node

更改

更改节点可用于修改消息的属性并设置上下文属性,而无需使用函数节点。

每个节点都可以配置多个操作,这些操作按顺序应用。可用的操作有

  • 设置 - 设置属性。该值可以是多种不同类型,也可以取自现有消息或上下文属性。
  • 更改 - 搜索和替换消息属性的部分内容。
  • 移动 - 移动或重命名属性。
  • 删除 - 删除属性。

设置属性时,该值也可以是 JSONata 表达式的结果。JSONata 是一种用于 JSON 数据的声明式查询和转换语言。


Switch node

开关

开关节点允许通过对每条消息评估一组规则来将消息路由到流的不同分支。

“switch”这个名称来源于许多编程语言中常见的“switch 语句”。它不是指物理开关

该节点配置了要测试的属性 - 可以是消息属性或上下文属性。

有四种类型的规则

  • 规则根据配置的属性进行评估
  • 序列规则可用于消息序列,例如由拆分节点生成的序列
  • 可以提供一个 JSONata 表达式,它将对整个消息进行评估,如果表达式返回 true 值,则匹配。
  • 如果前面没有规则匹配,则可以使用否则规则进行匹配。

节点会将消息路由到与匹配规则对应的所有输出。但它也可以配置为在找到匹配规则时停止评估规则。


Template node

模板

模板节点可用于使用消息属性填充模板来生成文本。

它使用 Mustache 模板语言来生成结果。

例如,一个模板

This is the payload: {{payload}} !

会将 {{payload}} 替换为消息 payload 属性的值。

默认情况下,Mustache 会将某些字符替换为其 HTML 转义码。要阻止这种情况发生,可以使用三重括号:{{{payload}}}

Mustache 支持对列表进行简单循环。例如,如果 msg.payload 包含一个名称数组,例如:["Nick", "Dave", "Claire"],则以下模板将创建名称的 HTML 列表

<ul>
{{#payload}}
  <li>{{.}}</li>
{{/payload}}
</ul>
<ul>
  <li>Nick</li>
  <li>Dave</li>
  <li>Claire</li>
</ul>

该节点将使用模板的结果设置配置的消息或上下文属性。如果模板生成有效的 JSON 或 YAML 内容,则可以配置为将结果解析为相应的 JavaScript 对象。