Node-RED 0.7.0 现已可供下载或通过npm 安装。
请阅读升级说明。最重要的是,获取最新代码后别忘了运行 npm update
!
新功能
当你运行 Node-RED 时,它会尝试加载所有找到的节点。通常你会遇到一些缺少依赖项的节点,因此你会收到许多消息,例如:
16 Apr 21:16:59 - [23-watch.js] Error: Cannot find module 'fs.notify'
16 Apr 21:16:59 - [32-feedparse.js] Error: Cannot find module 'feedparser'
我们对这些消息进行了一些整理,使其对新用户不那么令人生畏。在此版本中,我们默认隐藏这些消息,只提供摘要:
16 Apr 21:23:32 - ------------------------------------------
16 Apr 21:23:32 - [red] Failed to register 10 node types
16 Apr 21:23:32 - [red] Run with -v for details
16 Apr 21:23:32 - ------------------------------------------
如你所见,我们还告诉你如何查看详细信息——通过使用 -v
选项运行。
由于我们现在有几个不同的命令行选项,我们添加了帮助:
$ node red.js -?
Usage: node red.js [-v] [-?] [--settings settings.js] [flows.json]
Options:
-s, --settings FILE use specified settings file
-v enable verbose output
-?, --help show usage
Documentation can be found at https://nodered.com.cn
无头模式
我们的第一个问题之一就是在追踪器上提出的,即能够以无头模式运行 Node-RED——即不运行 UI。
在之前的版本中,我们为实现此功能做了一些小步尝试,最终在此版本中得以实现。
如果你还记得上一个版本,我们引入了 httpAdminRoot
和 httpNodeRoot
配置设置。这些设置用于定义各自 http 端点的根路径。
你现在可以将这些属性中的任何一个设置为 false
(不是字符串 'false'
,而是布尔类型 false
)。这样做可以有效地关闭其各自的端点。为了方便使用,将 httpRoot
设置为 false 是将 httpAdminRoot
和 httpNodeRoot
都设置为 false 的快捷方式。
此外,如果 httpAdminRoot
和 httpNodeRoot
都为 false(或 httpRoot
为 false),并且 httpStatic
未设置,那么我们甚至不会启动 http 服务器。
如果你的流程中有 HTTP-In 节点,并且你将 httpNodeRoot
设置为 false,你现在会收到警告消息,告知你这些节点不可访问。
如果你有调试节点并且 httpAdminRoot
为 false,你将无法访问调试节点输出,除非你也使用它们的新选项将输出发送到 stdout。
UI 更新
在 UI 中,拖动节点时,你可以在开始拖动节点之后按 shift
键来对齐网格。我们修正了计算选择多个节点时网格位置的一些不一致之处。这使得连接线更容易对齐。
在此版本中,你现在还可以使用光标键实现节点的像素级精确定位。如果同时按下 shift
键,节点将进行大幅移动。
我们增加了对使用 Ctrl-X
剪切工作区中节点的支持,以补充现有的复制 (Ctrl-C
) 和粘贴 (Ctrl-V
) 操作。
移除旧的已弃用节点
正如之前在邮件列表上宣布的,我们已经移除了一些很久以前就弃用的节点。当我们弃用一个节点时,它会从调色板中消失以防止新使用,但仍保留在运行时中,因此现有流程不受影响。我们移除的节点有:
- 30-socketin - 旧的简单 tcp 和 udp socket - 现在已被单独的 tcp、udp 和 http 节点取代
- 30-socketout - 匹配的出站 sockets
- 32-multicast - 原始组播节点 - 现在已作为 udp 节点的一部分被取代
- 35-rpi-gpio-in - 使用节点库(不再维护)的原始树莓派输入节点 - 现在已被使用 gpio 的节点取代。
- 35-rpi-gpio-out - 出站对
弃用 HTTPGet
在此版本中,我们已弃用 httpget 节点。此节点在逻辑上已在一段时间前被 HTTPRequest 节点取代,但我们一直没有正式弃用它。当我指出这一点时,有人指出 httpget 节点有一个功能在其替代节点中不可用:在节点内以编程方式构建 URL 的能力。
httpget 节点允许你指定一个“基本 URL”和一个“附加”选项。当消息到达时,消息 payload 会插入到这两者之间以获取请求的最终 URL。我们没有直接在 HTTPRequest 节点中重现此功能,而是借此机会更好地解决了这个问题。
当在节点本身中配置时,HTTPRequest 节点的 url
属性现在支持 mustache 样式模板标签。这允许使用传入消息的任何属性动态生成 URL。例如,一个 URL 如下:
http://example.com/?s=
以及传入消息如下:
{
topic: "foo",
user: "fred",
}
将生成 URL:
http://example.com/foo/?s=fred
你仍然可以自己构建 URL 并通过消息的 url
属性传入 - 这将覆盖你在节点中配置的任何内容。
其他节点更新
- 调试节点现在可以选择将其输出发送到 stdout。此外,点击侧边栏中的调试消息,如果需要,将在工作区中切换选项卡以显示消息来源。
- Delay 节点有一个新选项,用于在限速模式下丢弃中间消息
-
Sentiment 节点接受一组单词-值对以自定义其评分
- 为以下内容添加了节点到 node-red-nodes 仓库:
- Beaglebone Black 硬件 - 模拟、数字和脉冲 IO
- Heatmiser 恒温器
- Pibrella 板
- 更新了 Emoncms 和 Hue 节点,增加了新功能
- Twilio 节点不再需要你在
settings.js
中提供账户详细信息 - 你可以在节点本身中提供。