这篇文章继续介绍常用的exec节点在Node-RED中的使用方式。
以容器方式启动Node-RED服务,启动命令如下所示:
启动命令:docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered -d nodered/node-red:1.0.4
exec节点使用介绍
exec缺省是function类别的一个节点,基本信息如下图所示,有一个输入和三个输出,接下来将结合示例进行使用说明。
使用inject、exec和debug节点组成如下flow:
exec节点的设定如下所示:仅在Command处设定echo为执行命令,注意Append复选框在此示例中缺省被选中,这样缺省设定下的Inject的timestamp会作为echo命令的参数传入:
执行结果如下所示:
结果说明:选中Append的复选框,时间信息作为参数传给echo,然后通过stdout标准输出进行了显示。
修改Inject,进行如下设定,也可以不做修改仅仅取消后续exec节点的复选框:
去掉Append的复选框,在执行命令中使用uname -a来确认结果
flow如下所示
执行结果如下所示:
注意事项:命令执行是通过Node.js在Node-RED所在操作系统上执行本地命令,以本文Docker方式启动的Node-RED服务为例,实际上是在启动的nodered容器中执行次命令, 使用如下方式即可确认到uname命令的结果:
liumiaocn:~ liumiao$ docker exec nodered uname -a Linux e14347474b69 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64 Linux liumiaocn:~ liumiao$
JSON格式的flow如下所示
[{"id":"261d1556.3315fa","type":"exec","z":"69f65762.fb3bd8","command":"uname -a","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":380,"y":140,"wires":[["5445c0ae.bb25f"],["5445c0ae.bb25f"],["5445c0ae.bb25f"]]}]使用示例3: 使用多条语句和管道
在命令行中可以使用多条语句和管道符号, 比如使用如下设定示例
执行结果如下所示