Node-RED 0.13.0 现已可供下载或npm 安装。
如果要升级,请阅读升级说明。
如果您正在使用树莓派 Jessie 上的预装版本,其软件仓库将在不久的将来更新。
0.13 版本在编辑器中带来了许多新功能,并对运行时进行了内部更改。
编辑器更新
编辑器进行了一些小改动,让您在创建流程时获得更愉快的体验。
网格布局
我们现有的一个隐藏功能是,在拖动节点时按住 Shift 键,可以将节点对齐到隐形网格。我们通过在新的视图
菜单下添加显示网格
和对齐网格
选项,使其更加明显。如果您喜欢一切都完美对齐,请打开这些选项并享受。
当我们谈论移动节点时,我们知道有些用户会感到恼火的一点是,仅仅移动一个节点并不会启用“部署”按钮;您必须对流程进行实质性更改才能保存更改。现在您不必再恼火了——移动节点现在将启用“部署”按钮。如果您选择“已修改节点”或“已修改流程”部署选项,那么您的布局更改将被保存,而不会干扰正在运行的节点(假设您也没有进行任何实质性更改……)。
连接电线
您有多少次想要将一个节点放到现有的电线上,并让它自动连接到位?现在您可以了。
您只能连接从调色板直接拖动或没有现有导线的新节点。
分离电线
您有多少次想替换一个连接了许多电线的节点,但却不得不手动重新布线?现在这变得容易多了。如果您在开始拖动节点的端口时按住 Shift 键,它将分离现有电线,并允许您将它们重新连接到其他地方。
配置节点(再次)
在上次发布中,我们在部署时添加了一些警告,以告知您潜在的问题。其中一个警告是,如果您的工作区中有任何未使用的配置节点。这比我们之前什么都不告诉您有所改进,但它没有获得多少粉丝,因为它阻碍了部署,并且本质上并不是一个错误。
在此版本中,我们取消了该警告。取而代之的是,如果您部署了未使用的配置节点,则正常的“部署成功”通知已扩展,以告知您未使用的节点。由于此通知在大约 8 秒后消失,因此它不会妨碍您的工作流程。重要的是,该消息还包含一个链接,可以打开配置节点侧边栏,向您显示它所告知的未使用的节点。
配置节点侧边栏也已更新,以显示所有配置节点,并按它们所在的流程(选项卡)或子流程进行组织。视图顶部有控件,可仅显示未使用的节点。
我们认为这解决了我们收到的关于这个特定领域的所有评论——请告诉我们您的想法。
编辑对话框
节点编辑对话框的自由形式性质意味着编辑器很难知道对话框中是否存在未保存的更改。因此,我们禁用了您在此类对话框中可能期望的“按 Esc 键关闭”行为,这样您就不会意外丢失更改。对于不喜欢离开键盘的用户,您现在可以使用 Ctrl-Escape (Cmd-Escape) 关闭对话框并丢弃任何更改。同样,Ctrl-Enter (Cmd-Enter) 会单击“确定”按钮并应用更改。
我们在自己的节点中发现了一个问题,即在编辑对话框调整大小时,有大量重复的样板代码来处理布局更改。为了使其更容易,节点的定义现在可以包含一个oneditresize
函数,该函数在对话框调整大小时调用。核心节点已更新以使用它,因此您可以了解如何使用它,例如,在Catch 节点中。
类型输入控件
Change 节点已更新,以支持更丰富的属性类型集。以前,它只能将消息属性设置为字符串值。现在,您可以使用此版本中添加的新TypedInput
控件从一系列类型中进行选择。
在该列表中,您将看到msg.
- 它将一个消息属性复制到另一个消息属性。您还将看到flow.
和global.
- 稍后将详细介绍它们。
JSON 选项允许您提供一个 JSON 字符串,它将被解析为等效的 JavaScript 对象。总而言之,非常方便。
Switch 节点也已更新以使用此控件。Switch 节点特有的一个额外选项是将属性设置为“先前值”的功能。这使您可以创建根据属性值是否已更改来路由消息的流。我们也有rbe
节点(按异常报告)可以做到这一点,但将其添加到 Switch 节点使其更容易实现。
注入节点也已更新,以便您可以选择更丰富的有效负载来注入。
TypedInput
widget 是一个 Node-RED 专用的 jQuery widget,可在编辑器中供任何节点使用。我们将在不久的将来分享它的文档——但您可以查看更新后的节点以了解它的用法。
上下文
函数节点可以访问context
对象,为它们提供一个在调用之间存储状态的空间。它们还可以访问context.global
——所有函数节点共享的上下文。
在此版本中,我们对上下文的访问方式进行了一些更新,使其对所有节点都可用,并更改了其使用方式。
在函数节点中,context
已与flow
和global
一起。这些是三个独立的上下文范围——分别在节点内部、流(选项卡)和所有节点之间。
这些上下文中的每一个现在都提供了一对get(key)
和set(key,value)
函数,用于访问其中的数据。您仍然可以简单地将属性附加到这些对象,例如context.foo = 1;
,因此现有流程不会受到影响,但现在不鼓励这样做,而是推荐使用context.set('foo',1);
。这是实现能够在 Node-RED 重启后保存和恢复上下文对象的目标的第一步。
如前所述,Inject、Switch 和 Change 节点现在都可以访问flow
和global
上下文,并且 Template 节点可用于设置上下文属性。
有关编写函数的文档已更新,其中包含更多详细信息。
运行时更新
管理 API 有一些新的添加
- 通过将
Node-RED-Deployment-Type
头部设置为reload
,/flows
端点现在可用于触发活动流配置的重新加载和重启。 - 新增的
/flow
端点已添加,其操作可用于添加、获取、更新和删除单个流(选项卡),而不会中断其他流。
运行时本身已经过重新组织,以便更好地将核心运行时与提供管理 API 和编辑器的部分分离。我们还稳定了运行时 API,以便我们可以开始记录它。我们希望在发布时能完整地记录下来,但不可避免地没有实现——我们正在努力。
需要注意的是,对于那些已经开始创建自己的消息翻译的用户,编辑器和运行时的目录文件已移动。它们现在位于
red/api/locales/en-US/editor.json
red/runtime/locales/en-US/runtime.json