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 直接拖放到画布上,导入流程变得更容易了。这是一个从新流程库中拖动的示例。
- 为了更容易在调色板中找到东西,我们添加了一个搜索过滤器。
- 为了帮助管理流程中使用的配置节点,我们添加了配置节点侧边栏选项卡。它列出了流程中的所有配置节点,并突出显示了哪些节点正在使用它们。这意味着您可以快速发现任何不再使用且可以删除的配置节点。
节点更新
- 向 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 节点添加了可选的基本身份验证