核心节点

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

所有节点都包括文档,你可以在选择节点时在信息侧边栏选项卡中查看。


Inject node

注入

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

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

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

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

interval 最大可以设置为596小时(大约24天)。如果你关注大于一天的间隔——考虑使用可以应对停电和重启的调度器节点。

between timesat a specific time 选项使用标准的 cron 系统。这意味着20分钟将是在下一个整点的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 模板语言来生成结果。

例如,以下模板:

这是有效载荷:{{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 对象。