分类 node-red 下的文章
nodred教程3
第二节理解node-red服务
只需要会SQL语句和JavaScript,就可以实现数据同步服务的功能。msg是一个对象,在一个流程里面的任意一个节点组件里面都能够访问到,举一个例子流程就好像进行中的一场足球比赛,在这场比赛里面,球员可以理解为节点,足球可以理解为msg对象,足球在各个球员之间进行不停地传递,最后足球进入球门,整个流程也就结束,也就是说在整个流程里面msg对象是流动的,共享的。这个node-red服务的核心就是一个流程服务,所有的操作都是串行的方式执行的。不管在哪个节点组件上,msg对象就是一个核心的对象,我们可以给这个msg对象增加自定义对象,方便在以后流程的任意节点里面去使用。
能够理解上述内容,那么基本就已经掌握了node-red的核心思想了,当然了,这是我的个人理解。为了解释这个原理,现在我写一个简单的例子来说明一下。要做点什么呢?举一个例子,我们读取所有的科室表,然后根据科室id去读取患者表的数据,当然这个操作是多余的,我只是为了说明上述原理。
我本地有两张表,科室表和患者表,如图所示
这两个表的关联字段就是科室id就是departmentid,由于流程是串行的,现在需要先查询出所有的科室信息,然后,再把科室id取出来,再重新组织成一个SQL语句去查询患者信息。对了,顺便说一下,按照安装方式2搭建的服务,里面已经安装了mysql,SqlServer,Oracle的组件,当然,也可以自己安装。好了,我们需要先创建一个inject组件。如图所示。
在这个topic里面去输入查询SQL语句,之所以要把SQL语句写在topic字段里面是因为数据库组件的规则必须要这么输入,所以,按照他们的规则做就行了。接下来创建一个数据库组件。
连接起来,为了直观看一下效果,先添加一个debug组件,看一下这一步生成的记录。
现在我点一下左侧的按钮,就可以查看到查询结果了。
可以看到debug组件显示的就是msg.payload对象的信息,接下来,添加一个函数组件,处理一下这个结果,把科室id过滤出来,然后,组成新的SQL语句。如图所示。
然后,再在后面添加一个数据库组件,可以直接复制一下之前的组件就行。如图所示
最后,添加一个debug组件,查看payload里面是不是患者信息。
可以看到已经有患者信息了,那我现在要看科室信息,要怎么办,有三种办法,第一个是再添加debug组件打印departmentList;第二个就是添加函数组件,把他们合并到一起后再连接一个debug组件;第三个就是直接修改debug组件的打印信息,把payload修改成departmentList对象,为了简单起见,这里面我直接修改这个debug组件。如图所示。
点击保存按钮,最后点击重新部署按钮。
再调试一下看看结果。
可以看到打印的结果已经变成科室列表信息了。
总结,流程的每次修改,都要去重新部署一下,否则流程不会生效。
第一节搭建node-red环境
node-red是一个用于物联网管理的流程服务管理平台。是IBM开发的。是一个低代码可视化的流程管理平台。
可视化,直接在浏览器拖拽创建Flow
平台可使用模块丰富
支持http,mqtt,websocket,tcp,utp协议
使用Nodejs事件驱动的非阻塞模型,非常适合在低成本硬件运行
完全开源,可以自主开发
其实有关node-red的相关教程,官网上已经写的非常清楚和详细了,如果大家对英语比较熟悉的话,建议还是去阅读官网的教程。https://nodered.org/
这里在引用网上搜索的另外一个教程:https://www.cxyzjd.com/article/github_35631540/111869601
这个教程写的也挺全面的,目前我写的是完全按照我自己的理解写的,我也在学习过程中。
安装方式1
在官网上提供了很多种的安装方式,这里我自己采用的是git源码的安装方式,也就是官网上提供的方法进行的,https://nodered.org/docs/getting-started/development,如果这里面的git地址无法访问的话,可以访问这个连接https://gitee.com/mirrors/node-red.git
安装方式2
如果安装方式1失败,可以采用第二种方式,这种方式我是采用了一种安装后的方式,需要的资料我已经上传到网盘,
链接:https://pan.baidu.com/s/19Q1m2lybVQbQv_QoIvbguQ
提取码:1111
详细说明参考这个PDF文件。
Linux下执行nohup npm start &