欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
概述
 
想要在本地运行 Node-RED 很简单,只要下面两条命令:
 
npm install -g --unsafe-perm node-red
 
node-red
 
之后你就可以看到这个逻辑编排界面了:
 
我们可以利用这些逻辑节点构建前端网站、后端服务,以及大部分开发工作。光这么说还比较抽象,我们接下来会详细介绍每个逻辑节点的作用,让你了解这些逻辑节点是如何规划设计的,以及逻辑编排到底是怎么控制研发规范来提高研发效率的。
 
Node-RED 截止目前共有 42 个逻辑节点,按照通用、功能、网络、序列、解析、存储分为六大类。
 
所有节点都可能有左右连接点,左连接点是输入,右连接点是输出,特殊节点可能有多个输入或多个输出,其实对应代码也不难理解,就是入参和出参。
 
下面依次介绍每个节点的功能。
 
通用
 
通用节点处理通用逻辑,比如手动输入数据、调试、错误捕获、注释等。
 
inject
 
手动输入节点。可以定期产生一些输入,由下一个节点消费。
 
举个例子,比如可以定期产生一些固定值,如这样一个这个对象:
 
return {
 
  payload: new Date(),
 
  topic: "abc",
 
};
 
当然这里是用 UI 表单配置的:
 
之后就是消费,几乎后面任何节点都可以消费,比如利用 change 节点来设置一些环境变量时,或者利用 template 节点设置 html 模版时,都可以拿到这里输入的变量。如果在模版里,变量通过 {{msg.payload}} 访问,如果是其它表单,甚至可以通过下拉框直接枚举选择。
 
然而这个节点往往用来设置静态变量,更多的输入情况是来自其它程序或者用户的,比如 http in,这个后面会讲到。其实通过这种组合关系,我们可以把任意节点的输入从生产节点替换为 inject 节点,从而实现一些 mock 效果,而 inject 节点也支持配置定时自动触发:
 
debug
 
用来调试的,当任何输出节点连接到 debug 的输入后,将会在控制台打印出输出信息,方便调试。
 
比如我们将 inject 的输入连上 debug 的输入,就可以在触发数据后在控制台看到打印结果:
 
当然如果你把输入连接到 debug,那么原有逻辑就中断了,然而任何输出节点都可以无限制的输出给其它节点,你只要同时把输出连接到 debug 与功能节点就行了:
 
complete
 
监听某些节点触发完成动作。通过这个节点,我们可以捕获任意节点触发的动作,可以接入 debug 节点打印日志,或者 function 节点处理一下逻辑。
 
可以监听全部节点,也可以用可视化方式选择要监听哪些节点:
 
catch
 
错误捕获节点,当任何或指定节点触发错误时输出,输出的格式为:
 
error.message 字符串
 
错误消息。
 
error.source.id 字符串
 
引发错误的节点的ID。
 
error.source.type 字符串
 
引发错误的节点的类型。
 
error.source.name 字符串
 
引发错误的节点的名称。(如果已设置)
 
其实每个节点都有固定输出格式,这些固定格式限制了开发灵活度,但熟练掌握后可以大大提升开发效率,因为所有同类型节点格式都是一样的,这是逻辑编排带来规则约束的好处。
 
status
 
监听节点状态变化。
 
link in
 
只能连接 link out。link in、link out 就像一个传送门,用来整理逻辑编排节点,使之看上去易于维护。
 
比如下面的例子,在一个天气 http in 服务后,穿插了许多逻辑处理节点,有处理响应 html 内容的 template 节点,也有处理请求查询城市天气的 http request 服务,整体逻辑虽然聚合,但比较杂乱:
 
较好的方式是分类,即类似代码开发中的模块化行为,将天气服务导出,其他任何用到的模块直接导入,这个导入动作就是通过 link in 实现的,link out -> link in 只是一个空间位置的变换,传输值是不会变的:
 
这样模块看起来清晰了许多,如果要知道各个 “传送门” 见连接关系,只要鼠标点击其中一个就可以给出提示,看起来十分方便:
 
link out
 
和 link in 成对出现,用来导出输入值,后面对接 link out 可以像传送门一样将值传送过去,在视觉上不会形成连接线。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63791.shtml