Node-RED基础节点探秘:Complete、Status、Catch节点的使用

在构建和调试Node-RED流时,我们经常会遇到各种问题和挑战。为了确保流的稳定性和可靠性,了解并善用调试工具至关重要。其中,Complete、Status和Catch节点是三个强大的工具,能够帮助我们更有效地监控和调试流的执行。

  • Complete节点:让我们能够捕捉节点处理完成的事件,确保流程按照预期执行。

  • Status节点:实时监控节点的状态变化,有助于识别连接问题和运行异常。

  • Catch节点:捕捉并处理错误信息,提供便捷的错误调试手段。

通过掌握这三个节点的使用,我们可以更好地管理Node-RED流的执行过程,提高开发效率,减少故障时间。接下来,我们将详细探讨这些节点的具体功能和应用场景。

Complete节点

Complete节点 用于检测和捕捉另一个节点的完成事件。这对于跟踪流的执行进度和处理复杂的异步操作非常有帮助。另外某些节点没有不包含任何的输出,如果想要在这个节点处理完成后执行相应的逻辑是无法在原本的流上继续完成的,这个时候就可以借助Complete节点来触发新的流。

使用方法

  1. 1. 设置Complete节点需要监控的目标节点(可同时设置多个监控节点)。

  2. 2. 当目标节点完成处理时,Complete节点会输出一个消息,包含目标节点的详细信息。

示例

图片

[{"id":"n1","type":"inject","z":"ceb407ee87fc0c2f","g":"764efde50cdd36fa","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"hello","payloadType":"str","x":290,"y":140,"wires":[["n2"]]},{"id":"n2","type":"debug","z":"ceb407ee87fc0c2f","g":"764efde50cdd36fa","name":"Debug Node","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":490,"y":140,"wires":[]},{"id":"n3","type":"complete","z":"ceb407ee87fc0c2f","g":"764efde50cdd36fa","name":"","scope":["n2"],"x":690,"y":140,"wires":[["n4"]]},{"id":"n4","type":"debug","z":"ceb407ee87fc0c2f","g":"764efde50cdd36fa","name":"Complete Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","statusVal":"","statusType":"auto","x":910,"y":140,"wires":[]}]

在这个示例中,当Debug节点完成处理时,Complete节点会捕捉到这一事件,并将其传递给另一个Debug节点进行显示。

Status节点

Status节点 用于监控和捕捉其他节点的状态变化。这在需要监控节点的运行状态(如连接状态、错误状态)时特别有用。

使用方法

  1. 1. 设置Status节点需要监控的目标节点(可同时设置多个监控节点)。

  2. 2. 当目标节点的状态发生变化时,Status节点会输出一个消息,包含状态的详细信息。

示例

图片

[{"id":"770d8e4ad52c920a","type":"tcp in","z":"ceb407ee87fc0c2f","g":"a757e97580a7d5cd","name":"","server":"server","host":"","port":"3456","datamode":"stream","datatype":"buffer","newline":"","topic":"","trim":false,"base64":false,"tls":"","x":280,"y":300,"wires":[["ed7f0604dbf779d9"]]},{"id":"ed7f0604dbf779d9","type":"debug","z":"ceb407ee87fc0c2f","g":"a757e97580a7d5cd","name":"debug 19","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":480,"y":300,"wires":[]},{"id":"3d0e761d14a00019","type":"status","z":"ceb407ee87fc0c2f","g":"a757e97580a7d5cd","name":"","scope":["770d8e4ad52c920a"],"x":710,"y":300,"wires":[["03bc43495d24b5ff"]]},{"id":"03bc43495d24b5ff","type":"debug","z":"ceb407ee87fc0c2f","g":"a757e97580a7d5cd","name":"status debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":930,"y":300,"wires":[]}]

在这个示例中,使用tcp in节点监听了3456端口,当有客户端连接时,在这个节点的状态将输出连接客户端的数量及相关信息,Status节点会捕捉到tcp in节点的状态变化,并将其传递给Debug节点进行显示。

Catch节点

Catch节点 用于捕捉和处理其他节点抛出的错误。这对于错误处理和调试流中的问题非常关键。

使用方法

  1. 1. 设置Catch节点需要监控的目标节点(可同时设置多个目标节点)。

  2. 2. 当目标节点抛出错误时,Catch节点会输出一个消息,包含错误的详细信息。

示例

图片

[{"id":"ef07bfbce0cc133c","type":"inject","z":"ceb407ee87fc0c2f","g":"c32bba2451c44c06","name":"","repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"hello","payloadType":"str","x":290,"y":440,"wires":[["9167b038afbb194c"]]},{"id":"9167b038afbb194c","type":"function","z":"ceb407ee87fc0c2f","g":"c32bba2451c44c06","name":"Error Function","func":"throw new Error('Test Error');","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":440,"wires":[[]]},{"id":"8d7fb7fb8f3b3f9b","type":"catch","z":"ceb407ee87fc0c2f","g":"c32bba2451c44c06","name":"","scope":["9167b038afbb194c"],"x":700,"y":440,"wires":[["090ace012541732f"]]},{"id":"090ace012541732f","type":"debug","z":"ceb407ee87fc0c2f","g":"c32bba2451c44c06","name":"Catch Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":930,"y":440,"wires":[]}]

在这个示例中,我们使用Function节点抛出错误,Catch节点会捕捉到这一事件,并将其传递给Debug节点进行显示。

总结

通过本文的介绍,我们了解了Node-RED中Complete、Status、Catch节点的作用和使用方法。它们在监控和调试流的过程中非常有用,可以帮助我们更好地理解和控制Node-RED流的执行状态。

希望这篇文章能帮助你更好地掌握Node-RED的使用技巧,如果有任何问题或需要进一步了解的内容,欢迎在公众号留言。

欢迎关注我的公众号“nodered-co”,原创技术文章第一时间推送。

图片

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值