Node-RED 0.19 现已可供下载通过 npm 安装

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

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



Node.js 版本支持

Node.js 4 已于 4 月达到其生命周期终点,不再接收任何形式的修复。当前的 Node.js LTS 版本是 8.x,10.x 将于 10 月发布。

随着节点生态系统的不断发展,我们发现我们所依赖的模块越来越多地放弃对旧版 Node.js 的支持。

我们借此机会宣布,这将是 Node-RED 支持早于 Node 8.x 的任何版本的最后一个版本

随着我们接近 Node-RED 1.0,我们将建立我们自己的 LTS 策略,使其尽可能与 Node.JS 发布计划保持一致。

持久化上下文

此版本带来了我们通往 1.0 路线图的下一步;将上下文数据存储在运行时之外的能力。

上下文数据是流中除流经它的单个消息之外的状态。以前,此数据仅存储在内存中,因此每当运行时重新启动时都会丢失。

通过 0.19,此状态现在可以存储在运行时之外。运行时提供了一个用于创建上下文存储的新 API,并且 0.19 提供了两种可供使用的实现。

默认存储仍然是内存存储——因此现有流不会有任何改变。提供的第二个实现是基于文件的存储——上下文数据将写入您的用户目录下的文件。

它还支持在运行时配置多个存储,因此您可以选择每个上下文数据存储的位置。例如,您可能希望某些值使用非持久化存储,而其他值使用持久化存储。

我们计划在未来提供其他实现,例如 Redis,以便在大规模运行时允许更具可扩展性的方法。

有关如何启用新上下文功能的文档可在此处找到。

上下文浏览器

为了补充新的持久化上下文功能,我们添加了一个新的侧边栏,允许您在编辑器中查看上下文数据。受现有 node-red-contrib-contextbrowser 插件的启发,新的侧边栏围绕新的底层上下文 API 构建,并完全支持多个上下文存储。

与调试侧边栏一样,如果您将鼠标悬停在任何值上,就会出现一个 按钮,可将该值复制到剪贴板。请注意,只有可以进行 JSON 编码的值才能复制。


编辑器更新

重新设计的侧边栏选项卡

随着新的上下文侧边栏的出现,是时候重新设计侧边栏选项卡的显示方式了,因为它们变得拥挤。

选项卡现在会折叠成仅显示选项卡的图标,并带有下拉菜单以选择任何当前不可见的选项卡。

更改节点图标

现在可以自定义流中任何节点的图标。这有助于区分相同类型但扮演不同角色的多个节点。

图标选项位于每个节点编辑对话框的“节点设置”部分。它允许您浏览并选择所有可用图标。请注意,我们尚不支持将 Font Awesome 图标用于节点。

更改子流类别

您现在还可以选择子流显示在哪个调色板类别中。这使得组织子流更容易,而不是将它们都放在调色板顶部的一个类别中。

流导航器小部件

我们已在主工作区的页脚中添加了一个流导航器小部件,可以通过新的 按钮启用。这为您提供了整个工作区的缩小视图,并显示您当前正在查看的部分。您可以拖动视图以快速到达工作区的任何角落,这应该会使您更容易找到那些您拖到最远角落并忘记的奇怪节点。

更好地处理环境变量

现在可以直接在流中访问环境变量。

注入、切换和更改节点都已更新,将“环境变量”选项添加到标准 TypedInput 小部件中

我们还在 JSONata 表达式语言中添加了 $env() 函数,以允许从表达式中访问环境变量。

节点更新

  • 文件输出节点现在具有输出,因此文件写入完成后流可以继续。
  • 函数节点现在可以访问其自身的 idname 属性。文档已更新,包含可用对象和函数的完整参考。节点的 JavaScript 编辑器现在也可以展开为更大的编辑器视图。
  • JSON 节点如果接收到的消息具有 msg.schema 属性,则可以进行模式验证。
  • Pi 专用的 GPIO 节点现在可在所有平台上使用——但是它们仅在 Pi 上运行时才起作用。这使得在笔记本电脑上查看/编辑用于 Pi 的流变得更容易。
  • 切换节点有一个新的“isEmpty”规则。它匹配为空的字符串、数组和缓冲区。还有相应的“isNotEmpty”规则。
  • 常见的 TLS 节点现在接受 servername 配置选项——在使用 SNI 时必需。