分类 node-red 下的文章

只需要会SQL语句和JavaScript,就可以实现数据同步服务的功能。msg是一个对象,在一个流程里面的任意一个节点组件里面都能够访问到,举一个例子流程就好像进行中的一场足球比赛,在这场比赛里面,球员可以理解为节点,足球可以理解为msg对象,足球在各个球员之间进行不停地传递,最后足球进入球门,整个流程也就结束,也就是说在整个流程里面msg对象是流动的,共享的。这个node-red服务的核心就是一个流程服务,所有的操作都是串行的方式执行的。不管在哪个节点组件上,msg对象就是一个核心的对象,我们可以给这个msg对象增加自定义对象,方便在以后流程的任意节点里面去使用。

能够理解上述内容,那么基本就已经掌握了node-red的核心思想了,当然了,这是我的个人理解。为了解释这个原理,现在我写一个简单的例子来说明一下。要做点什么呢?举一个例子,我们读取所有的科室表,然后根据科室id去读取患者表的数据,当然这个操作是多余的,我只是为了说明上述原理。

我本地有两张表,科室表和患者表,如图所示

image.png

image.png

这两个表的关联字段就是科室id就是departmentid,由于流程是串行的,现在需要先查询出所有的科室信息,然后,再把科室id取出来,再重新组织成一个SQL语句去查询患者信息。对了,顺便说一下,按照安装方式2搭建的服务,里面已经安装了mysql,SqlServer,Oracle的组件,当然,也可以自己安装。好了,我们需要先创建一个inject组件。如图所示。

image.png

在这个topic里面去输入查询SQL语句,之所以要把SQL语句写在topic字段里面是因为数据库组件的规则必须要这么输入,所以,按照他们的规则做就行了。接下来创建一个数据库组件。

image.png

image.png

连接起来,为了直观看一下效果,先添加一个debug组件,看一下这一步生成的记录。

image.png

现在我点一下左侧的按钮,就可以查看到查询结果了。

image.png

可以看到debug组件显示的就是msg.payload对象的信息,接下来,添加一个函数组件,处理一下这个结果,把科室id过滤出来,然后,组成新的SQL语句。如图所示。

image.png

image.png

然后,再在后面添加一个数据库组件,可以直接复制一下之前的组件就行。如图所示

image.png

最后,添加一个debug组件,查看payload里面是不是患者信息。

image.png

image.png

可以看到已经有患者信息了,那我现在要看科室信息,要怎么办,有三种办法,第一个是再添加debug组件打印departmentList;第二个就是添加函数组件,把他们合并到一起后再连接一个debug组件;第三个就是直接修改debug组件的打印信息,把payload修改成departmentList对象,为了简单起见,这里面我直接修改这个debug组件。如图所示。

image.png

点击保存按钮,最后点击重新部署按钮。

image.png

再调试一下看看结果。

image.png

可以看到打印的结果已经变成科室列表信息了。

总结,流程的每次修改,都要去重新部署一下,否则流程不会生效。

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文件。

flows.pdf

Linux下执行nohup npm start &

辽公网安备21010602000703号 备案号:冀ICP备2022001219号