本节主要介绍Node-RED平台的关键概念和一些关键组件,并通过具体实例说明Node-RED的编程模型。
- 数据流程(flow),flow是Node-RED中最重要的概念,一个flow流程就是一个Node-RED程序,它是由多个节点相互连接在一起形成数据通信的集合。在Node-RED的底层实现,一个flow流程通常是由一系列的JavaScript对象和若干个节点的配置信息组成,通过底层的Node.js环境再去执行Java Script代码。
节点(node),它是构建flow的最基本元素,也是真正进行数据通信处理的载体。当程序员编写好的flow流程运行起来的时候,节点的功能就是对从上游节点接收到的消息(简称message)进行逻辑处理,并返回新的消息结果传递给下游节点实现后续的工作。一个Node-RED的节点包括一个.js文件和一个.html文件,分别完成对节点逻辑功能的实现和节点的样式设计。
消息(message),它是节点之间进行数据传输的对象,也是数据的载体。理论上消息是一个JavaScript对象,它包含了对数据描述的所有属性。消息是Node-RED处理数据的最基本的数据结构,只有当节点被激活时消息才被处理,再加上所有节点都是相互独立的,这就保证了数据流程是互不影响并且是无状态的。
连线(wire),它是构建数据流程和节点与节点的通信连接桥梁,wire是将节点的输出端点连接到下一个节点的输入端,这就表示通过一个节点生成的消息应该交给下一个连接节点来处理。