售前咨询-朱:19381904226
售前咨询-杨:19381903226 English
前沿资讯
前沿资讯 真实、准确的物联网、互联网行业新闻

Node-RED开发流程

你的位置: 网站首页 新闻动态 技术应用

Node-RED开发流程

2022-09-19 01:39:09 阅读: 发布人:纵横智控

Node-RED 允许您通过拖入节点并将它们连接在一起以创建流程来快速开始开发应用程序。这可能是一种很好的入门方式,但随着流量随着时间的推移而增长,它可能会导致应用程序更难维护。


本指南提供了一些关于如何创建可重用、更易于维护且更健壮的 Node-RED 流的建议和最佳实践。


本指南假定您已经熟悉 Node-RED 的基本用法。如果您正在寻找有关使用 Node-RED 的更多信息,用户指南 和Cookbook是帮助您入门的好资源。


流程结构

本节介绍如何组织流程、将流程拆分为更小、可重用的组件的策略,以及如何针对不同平台自定义流程。


讯息设计

本节着眼于消息设计如何帮助创建协同工作且更易于维护的节点和流。


记录流程

所有好的代码都应该有好的文档来匹配。本节介绍 Node-RED 提供哪些工具和技术来帮助您记录它们。

当您第一次开始使用 Node-RED 时,您可能会开始将所有节点添加到编辑器的同一个选项卡中。您可以导入其他人共享的一些示例流程,或者构建原型流程来测试不同的东西。


随着时间的推移,这可能会导致节点和线路混乱,从而难以找到流程的特定部分。


在任何开发项目开始时考虑如何构建流程有助于保持它们的组织性并使其更易于维护。


在 Node-RED 中组织流的主要方法是将它们分隔到编辑器中的多个选项卡中。有几种不同的策略可以用来做到这一点。


如果您可以识别应用程序的单独逻辑组件,请考虑将它们放在单独的选项卡上。


对于家庭自动化应用程序,您可以将每个房间的流逻辑放在单独的选项卡上以反映物理空间。或者您可能希望根据功能分离流程 - 因此所有与照明相关的流程都在一个选项卡上,而在另一个选项卡上加热。


如果您正在构建 HTTP API 后端,则每个选项卡都可以代表 API 访问的单独类型的资源。


目标应该是使从头到尾“阅读”单个流程变得容易。将其保留在单个选项卡上可以帮助做到这一点。


另一个考虑因素是您是否与其他开发人员一起在同一个 Node-RED 应用程序上工作。如果更改位于单独的选项卡上,则管理更改的合并要容易得多。如果您有具有不同角色或专业的开发人员,请考虑这可能会如何影响您的流程的组织方式。


制作可重用的流程

在构建流程时,您可能会发现一些想要在多个地方重用的公共部分。您应该避免将这些通用部分的多个副本分布在您的流程中,因为它们变得更难维护 - 您最终会在多个位置应用修复并且很容易忽略一个。

 Node-RED 提供了两种不同的方法来创建可重用的流 - 链接节点和子流。
链接节点链接节点使您可以创建一个可以在编辑器中的选项卡之间跳转的流 - 它们添加一条从一个流的结尾到另一个流的开始的虚拟连线。


  

子流允许您在调色板中创建一个新节点,其内部实现被描述为一个流。然后,您可以在普通节点的任何位置添加子流的新实例。


这两种方法之间有一些重要的区别。链接节点不能在流程中间使用,其中消息通过链接传递,然后在其他流程完成时返回。它们只能用于开始或结束流程。它们还可以连接到多个其他链接节点。这使您可以将消息传递到多个其他流,或者让多个流将消息传递到单个流。它们可以在单个选项卡中使用,以帮助流程环绕工作区,而无需大量电线从右到左交叉。


子流显示为常规节点,因此可以在流中的任何点使用。然而,子流的每个实例都独立于其他实例。子流内的任何流上下文都将作用于各个实例。如果子流创建到远程系统的连接,每个实例将创建自己的连接。


自定义子流

创建子流时,您可能希望能够以某种方式自定义它们的行为。例如,更改它发布到的 MQTT 主题。


这样做的一种模式是设置msg.topic传递给子流的每条消息。但这需要在每个子流实例前添加一个 Change 节点以设置所需的值。


一个更简单的方法是使用子流属性。这些是可以在子流实例上设置并显示为子流内的环境变量的属性。


友情链接