在流的控制中,依据分支执行的结果可以分支结果的输出,这篇文章继续介绍 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
flow 生成和设定
生成下图所示的 flow
inject 节点:flow.state 传递结果 在 node-red 中 flow.state 为此节点的执行结果,可根据此节点的执行结果进行后续的逻辑判断。
switch 节点:根据 flow.state 传递结果进行多路分支处理 此处用了三个分支,分别对应 flow.state 返回 0、1 和 2 的情况
debug 节点:显示 msg.payload 信息
部署并执行
点击 deploy 进行部署,并通过点击 inject 节点执行按钮手动触发,会发现执行结果总是显示 flow.state == 0 的分支,因为此处 inject 的节点只是传个时间戳,并不会出错的原因。
flow 生成和设定
生成下图所示的 flow
inject 节点:用作示例的传递输入 分别使用三个 inject 节点传入 flow.state 为 0、1 和 2,比如 flow.state=0 的值的设定如下所示:
change 节点:将三个节点的 state 属性转化为 payload
debug 节点:显示 msg.payload 信息
部署并执行
点击 deploy 进行部署,并通过点击三个 inject 节点执行按钮手动触发,结果显示如下
[{"id":"8073b1db.7152","type":"inject","z":"73554227.4474dc","name":"多路输入:0","topic":"","payload":"0","payloadtype":"num","repeat":"","crontab":"","once":false,"oncedelay":0.1,"x":190,"y":340,"wires":[["bca30b83.bb3328"]]},{"id":"223570a4.2ca28","type":"inject","z":"73554227.4474dc","name":"多路输入:0","topic":"","payload":"0","payloadtype":"num","repeat":"","crontab":"","once":false,"oncedelay":0.1,"x":190,"y":380,"wires":[[]]},{"id":"fd948673.ecaf18","type":"inject","z":"73554227.4474dc","name":"多路输入:1","topic":"","payload":"1","payloadtype":"num","repeat":"","crontab":"","once":false,"oncedelay":0.1,"x":190,"y":380,"wires":[["bca30b83.bb3328"]]},{"id":"532a5292.81ae0c","type":"inject","z":"73554227.4474dc","name":"多路输入:2","topic":"","payload":"2","payloadtype":"num","repeat":"","crontab":"","once":false,"oncedelay":0.1,"x":190,"y":420,"wires":[["bca30b83.bb3328"]]},{"id":"bca30b83.bb3328","type":"change","z":"73554227.4474dc","name":"输入合并器","rules":[{"t":"set","p":"state","pt":"msg","to":"payload","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":380,"wires":[["ced9de0c.8573f"]]},{"id":"ced9de0c.8573f","type":"debug","z":"73554227.4474dc","name":"结果输出显示","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targettype":"msg","x":590,"y":380,"wires":[]}]
来源:
nodered 澳门人威尼斯3966官网:
noderedgithub:
nodered 英文社区:
nodered 中文社区:https://www.iotschool.com/topics/node81
nodered 中文社区 qq 群:8604461