经过漫长的等待,Node-RED 0.18 现已可供下载或通过 npm install 安装。

如果要升级,请阅读升级说明

对于树莓派用户,如果您仍在使用预装版本,请参阅树莓派文档了解如何升级。



我们去年七月发布了通往 1.0 的路线图,并表示:

您会注意到,这个路线图上没有确定的时间表;它代表了大量的开发工作,并且最终设计上还有一些悬而未决的问题。但我们的目标是在年底前达到 1.0。

现在已是一月底,这是我们自那以来的首次发布,但它并不是 1.0 版本。我们曾希望在路线图上能走得更远,但有些事情是急不来的。

作为一个开源项目,我们依靠优秀的社区来推动项目前进。我们今年的目标之一是发展贡献者社区。为项目做贡献不仅仅是编写代码(当然,这确实有助于加快路线图的进程)。有很多方式可以更深入地参与并回馈项目,比如编写文档、贡献食谱或帮助改进流程库。

如果您想参与进来,欢迎在 Slack 上与我们交流。

现在,让我们来看看 0.18 版本的发布说明。

项目

新的“项目”功能是我们通往 1.0 路线图的第一个重要步骤。它改变了您管理流程文件的方式,并在编辑器中引入了版本控制。

我们在这里就不赘述了,而是添加了一些文档来详细解释“项目”功能,您也可以观看这个视频

我们正在逐步推出此功能,因此在此版本中,它处于预览模式——您需要通过设置文件来启用它。这意味着您可以在我们未来的版本中默认开启它之前,选择性地迁移到项目功能。

消息序列节点

我们在之前的版本中引入了 Split/Join(分割/合并)节点对。这些节点可用于将单个消息转换为一系列消息,然后再转换回来。

在此版本中,我们围绕消息序列添加了更多功能。

  • Switch(开关)节点增加了新规则,可以根据消息在序列中的位置进行路由。
  • Join(合并)节点可以配置 JSONata 表达式,用于将一个序列简化为单个消息。
  • 新增了一个 Sort(排序)节点,用于对序列中的消息进行重新排序。
  • 新增了一个 Batch(批处理)节点,用于根据接收到的消息创建新的序列。
  • CSVFile In(文件输入)节点在发送多条消息时,会以格式正确的消息序列形式发送。这使您能更高效地通过流程处理大型 CSV 文件流。

例如,对于来自 MQTT 节点的传感器数据流,可以使用 Batch 节点创建时间分片的序列,然后 Join 节点可以将其简化,以计算每个时间分片内的平均传感器读数。

自定义节点图标

我们添加了更改节点图标的功能。当您的流程中有大量相同类型的节点时,这有助于区分它们。请注意,这是一个编辑器级别的自定义——您不能通过流程动态更改图标。

要更改图标,请打开节点编辑对话框的设置部分,您会在端口标签设置下方看到新的选项。在此版本中,您必须从可用图标列表中选择,但我们将来会扩展这一功能。

支持作用域模块

我们最近更新了流程库,以索引作用域内的节点模块。在此版本中,我们修复了一些错误,现在您也可以直接在节点面板编辑器中安装它们。

增加核心节点的灵活性

按照惯例,节点使用 msg.payload 作为其主要处理的属性。这使得许多节点能够协同工作,但也可能导致问题,因为流程必须在不同节点间调整属性,以确保在任何给定点都能将正确的内容放入 payload 中。

有些节点已经比其他节点更灵活,允许您选择不同的属性进行处理。我们现在已将此功能扩展到更多节点。

在核心节点面板中,rangeHTMLJSONXML 节点都已更新,附加节点 RBErandomsmoothbase64 也已更新——请留意它们模块的新版本。

更新至 JSONata 1.5.0

我们已更新至最新版本的 JSONata,它引入了一些新功能和特性。请查看其发布说明,了解有关 1.4.0 和 1.5.0 版本的更多信息。

节点更新

像往常一样,我们在广泛的核心节点中进行了一系列改进。

  • JSON 节点现在可以配置为强制使用特定编码,而不仅仅是在 JSON 和 JavaScript 对象之间切换。这在您有一个期望用户发送 JSON 的 http 端点时非常有用。HTTP In 节点只有在请求的 Content-type 设置正确时才会自动解析 JSON——而在现实世界中,用户经常会犯这种错误。在 JSON 节点中添加此模式可以使流程更具容错性,并保证消息的 payload 已被解析。

  • 通用的 TLS 配置节点允许您为私钥文件指定密码。

  • 说到 TLS,我们为 WebSocket Client 节点添加了 TLS 支持。

  • 说到 WebSocket,我们为 MQTT 节点添加了 WebSocket 支持。

  • template(模板)节点已经可以发送已解析的 JSON 而不是文本,现在它还可以发送已解析的 YAML。您还可以使用 msg.template 动态设置其使用的模板。

  • 说到 YAML,有一个新的 YAML 解析器节点,用于与该格式进行相互转换。

  • Delay(延迟)节点现在可以通过发送带有 msg.reset 属性的消息来重置,从而丢弃任何排队的消息。

  • Debug(调试)节点现在允许您使用接收到的消息内容来更新其状态文本。这对于快速了解流程状态非常有用。

  • Inject(注入)节点现在允许您在其“启动时注入一次”选项触发前指定一个延迟。

  • Trigger(触发器)节点现在可以配置为使用 msg.topic 来区分不同的消息流以进行触发。