Node-RED 0.6.0 现已可供下载npm 安装。请阅读升级说明

如果您将 Node-RED 嵌入到其他应用程序中,此版本带来了一些 API 更改,将对您产生影响。请务必阅读下面的发布说明和更新的文档。

新功能

流程库

严格来说不属于此版本的一部分,但既然我们引起了您的注意,我们创建了flows.nodered.org,供任何人分享他们创建的有趣流程。

在您添加流程之前,您必须通过 github 登录网站。我们这样做是因为当您添加流程时,我们会将流程作为 Gist 保存到您在 github 上的帐户下。这意味着它仍然是“您的”——您可以随时将其从库中删除。这也意味着目前,如果您想编辑流程,您必须通过 github 上的流程页面进行编辑(链接在库的侧边栏中)。编辑后,您单击侧边栏中的“刷新”链接,以便我们在后台获取最新版本。我们将在未来版本中添加内联编辑。

首页目前列出了所有已添加的流程以及使用的标签。随着内容的增多,我们将努力使您更容易找到相关流程。

分离 HTTP 配置

目前,Node-RED 有一对配置设置可用于修改管理 UI 的服务方式。

  • httpRoot 定义了 UI 的服务根路径。
  • httpAuth,如果设置,通过指定所需的用户名/密码来定义基本身份验证。

这种方法的一个问题是,这些设置也应用于 HTTP-In 节点创建的端点。这意味着无法在允许未经授权的用户访问 HTTP In 端点的同时,保护 UI 免受未经授权的用户访问。这也意味着,如果您创建了一个 HTTP-In 节点侦听管理 UI 已使用的端点(例如/flows),则很容易发生冲突。

在此版本中,Node-RED 管理部分的配置方式已与提供 HTTP 端点的节点的配置方式分离。现在可以使用以下属性:

  • httpAdminRoot 定义了 UI 的服务根路径。
  • httpAdminAuth,如果设置,定义了基本身份验证的用户名/密码。

  • httpNodeRoot 定义了节点使用的根路径。
  • httpNodeAuth,如果设置,定义了访问节点端点的基本身份验证。

这些更改大部分向后兼容——如果这些新属性未设置,但httpRoot/httpAuth已设置,则新属性会自动获取其相应的值。

为了完整起见,还有一个新选项可以为httpStatic内容提供基本身份验证详细信息——httpStaticAuth——如果未另行设置,它也会获取httpAuth的值。

在内部,节点访问 express 应用程序以附加其 HTTP 请求处理程序的方式发生了变化。以前,节点只会使用RED.app。例如,来自 Inject 节点

RED.app.post("/inject/:id", function(req,res) {

RED.app 的使用已被弃用。如果您使用它,您将在控制台中收到一条警告消息,提示使用已弃用的 API——尽管目前仍然有效。

RED 有两个新的属性可以使用:

  • RED.httpAdmin - 应该用于所有与管理相关的 HTTP 端点。例如,像 MQTT 节点一样管理用户凭据。顾名思义,此处附加的端点受httpAdmin*配置设置的约束。任何使用已弃用的 RED.app 的代码实际上都将在内部使用此属性。
  • RED.httpNode - 应该用于非管理 HTTP 端点。同样,顾名思义,httpNode*配置在此处适用。

如果您已将 Node-RED 嵌入到您自己的 node.js 应用程序中,由于现在需要附加两个 express 应用程序,因此还需要一个额外的步骤。使用文档中的示例(https://nodered.com.cn/docs/embedding.html),而不是只做:

app.use(settings.httpRoot,RED.app);

您必须这样做:

app.use(settings.httpAdminRoot,RED.httpAdmin);
app.use(settings.httpNodeRoot,RED.httpNode);

UI 更改

  • 现在您可以将流程 JSON 直接拖放到画布上,导入流程变得更容易了。这是一个从新流程库中拖动的示例。

Drag and Drop

  • 为了更容易在调色板中找到东西,我们添加了一个搜索过滤器。

Palette Filter

  • 为了帮助管理流程中使用的配置节点,我们添加了配置节点侧边栏选项卡。它列出了流程中的所有配置节点,并突出显示了哪些节点正在使用它们。这意味着您可以快速发现任何不再使用且可以删除的配置节点。

Configuration Sidebar

节点更新

  • node-red-nodes 存储库添加了 Emoncms、Postgres 和 Amazon DynamoDB 节点
  • 为 TCP 服务器套接字添加了 socketTimeout 到 settings.js
  • 为 change 节点添加了正则表达式支持的正确选择
  • 修复了 MQTT 客户端中的 keepalive 处理
  • 为 WiringPi 中的所有 17 个引脚添加了选项
  • 添加了新的 Range 节点
  • 改进了注入节点有效负载选项 - 允许注入“空”有效负载
  • 文件节点:文件名可以通过传入消息的 filename 属性覆盖。如果消息具有 delete 属性,它将删除文件。
  • 为 Mongo 节点添加了用户名/密码
  • httpNodeCors 添加到 setting.js 以启用跨域请求
  • 为 HTTP Request 节点添加了可选的基本身份验证