核心节点

Node-RED 面板包含一组默认节点,这些节点是创建流程的基本构建块。本页重点介绍您应该了解的核心节点集。

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


Inject node

注入

Inject节点可用于通过点击编辑器中的节点按钮手动触发流程。它也可用于定期自动触发流程。

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

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

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

interval 可以设置的最大值为596小时(约24天)。 如果您需要设置超过一天的间隔时间,建议使用能够应对断电和重启的调度器节点。

interval between times(时间间隔)和at a specific time(指定时间)选项使用标准的cron系统。这意味着"20分钟"将表示下一个整点后的20分钟和40分钟——而不是从现在开始的20分钟后。如果您想要从现在开始每20分钟执行一次,请使用interval(间隔)选项。

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


Debug node

调试

Debug节点可用于在编辑器的Debug侧边栏中显示消息。

侧边栏提供了所接收消息的结构化视图,使消息更易于浏览。

每条消息旁边,调试侧边栏都会显示消息接收时间以及发送该消息的Debug节点信息。点击源节点ID将在工作区中定位到该节点。

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

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

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


Function node

功能

Function节点允许针对传递通过它的消息运行JavaScript代码。

关于如何使用Function节点的完整指南可在此查看。


Change node

变更

Change节点可用于修改消息属性和设置上下文属性,而无需借助Function节点。

每个节点都可以配置多个按顺序执行的操作。可用的操作包括:

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

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


Switch node

开关

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

名称"switch"来源于许多编程语言中常见的"switch语句",并非指代物理开关

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

规则有四种类型:

  • Value 规则将根据配置的属性进行评估
  • Sequence 规则可用于消息序列,例如由 Split 节点生成的序列
  • 可以提供一个JSONata表达式,该表达式将针对整个消息进行评估,如果表达式返回true值则匹配。
  • 可以使用Otherwise规则来匹配当前面所有规则都不匹配的情况。

该节点会将消息路由到所有符合匹配规则的输出端口。但也可以配置为在找到第一个匹配规则后停止继续评估其他规则。


Template node

模板

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

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

例如,一个模板:

This is the payload: {{payload}} !

将用消息的payload属性值替换{{payload}}

By default, Mustache will replace certain characters with their HTML escape codes. To stop that happening, you can use triple braces: {{{payload}}}.

Mustache supports simple loops on lists. For example, if msg.payload contains an array of names, such as: ["Nick", "Dave", "Claire"], the following template will create an HTML list of the names:

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

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