Node-RED基础节点探秘:Change 节点的使用

Node-RED基础节点探秘:Change 节点的使用

当涉及到在Node-RED中实现灵活的消息转换、修改和删除时,Change节点成为了一个强大而关键的工具。在这篇文章中,我们将深入探讨Change节点的作用、配置选项,带您逐步了解如何优雅地使用这一节点来定制您的Node-RED流。

Change节点:消息的变换术

当需要修改Node-RED流程中的消息时,Change节点成为不可或缺的工具。它为我们提供了设定值、替换值、删除和转移等丰富的功能,使得我们能够灵活地调整前面节点传递的消息,以满足后续节点的特定需求。通过Change节点,我们能够轻松地定制和优化消息流,确保信息在流程中传递时达到最佳状态。

了解消息流

为了更好的了解消息是如何在流程中进行传递的,我们先放置一个Inject节点,并设置payload为"Hello World!",如下图所示:

图片

再放置一个debug节点,并设置输出的内容为"与调试输出相同",以输出整个消息的内容,如下图所示:

图片

当我们点击inject节点左侧的按钮时消息将流经我们的流程,并在调试窗口中输出消息的内容,可以看到输出的内容为一个JSON对象的结构,包含了payload,topic和_msgid这三个属性,如下图所示:

图片

change节点功能

1. 设置值(Set)

设置值可以实现对消息的现有某个属性的值进行设置、修改和复制,如下图所示:

图片

可以看到流程执行后payload属性被修改,同时添加了一个新的属性value并将payload属性复制给了topic属性,如下图所示:

图片

对值进行深拷贝

当设置值时,如果所设置的值也是消息的某个属性,并且未勾选"对值进行深拷贝"选项时,若该属性为一个对象,那么这两个属性将共享同一个对象引用。这可能导致在修改其中一个属性时,另一个属性也会同时改变。若您不希望发生这种情况,建议勾选该选项。这样,在设置值时,原对象将会被深度复制,创建一个新的副本,从而确保两个属性的修改不会相互影响。这一选择提供了更灵活的数据管理方式,避免了潜在的引用传递问题。

2. 替换值(Change)

在使用Change节点进行替换值时,节点提供了一项关键功能:能够根据特定条件检查属性中是否包含目标内容,并随后执行替换操作。如下图所示:

图片

3. 删除(Delete)

删除的功能非常简单,可以将消息的某个属性进行删除,如下图所示:

图片

4. 转移(Move)

转移功能会将原属性删除,并将原属性的值赋值给一个新的属性,相当于通知执行了设置值和删除两个动作。如下图所示:

图片

change节点的其他知识

  • • 可以使用"."和"[]"访问属性中的数组和属性中的子属性

图片

  • • change节点中的每个步骤是按顺序执行的,拖动左侧的图标可以调整执行顺序

  • • change界面不但可以对消息的内容进行修改,还能修改flow和global上下文中的属性

总结

Change节点在Node-RED中扮演着至关重要的角色,为用户提供了丰富的功能,用于定制和优化消息流。通过设定值、替换值、删除和转移等操作,Change节点使得用户能够灵活地处理消息,确保其在整个流程中按照预期方式传递和被处理。

在处理消息时,Change节点的深拷贝功能提供了额外的保障,避免了引用传递可能引发的问题,确保各节点间的数据隔离和一致性。

此外,Change节点的条件执行和表达式支持,使得用户能够根据具体需求制定精细的规则,更好地适应不同的应用场景。

通过深入了解Change节点的各项功能,Node-RED用户可以更加灵活地定制其流程,确保数据的准确性和流畅性。因此,熟练运用Change节点将为Node-RED流程的设计和实施带来更大的便利。

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

图片

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Node-RED对于零基础小白来说可能是一项挑战,但是只要按照步骤逐渐学习,对于第一条数据流来说并不复杂。 首先,我们需要了解Node-RED的基本概念和界面结构。在Node-RED中,每个数据流都由一个或多个称为“节点”的功能模块组成,节点之间通过连接线(线性)来传递数据流。我们可以理解节点是执行特定任务的小工具。 要创建第一个数据流,首先打开Node-RED的编辑界面。在界面左侧的面板中选择一个适当的节点作为起始节点,例如“Inject”节点。将该节点拖放到主编辑区,并通过点击连接到其他节点的输入端口来创建连接线。 接下来,选择一个目标节点,例如“Debug”节点,该节点用于在调试过程中显示数据。同样,将该节点拖放到主编辑区,并使用连接线将其与起始节点连接起来。 然后,点击起始节点,可以在右侧面板中设置该节点的功能,例如选择需要发送的消息和发送时间间隔等。 最后,点击编辑界面右上方的“部署”按钮,以保存并部署我们的第一条数据流。在底部状态栏中,我们可以看到数据流的当前状态和任何错误信息。 当我们部署数据流后,起始节点将会按照预设的时间间隔发送消息到目标节点,并显示在Debug节点的输出栏中。 学习Node-RED需要一定的时间和经验积累,建议学习者通过参考官方文档、教程和示例来更深入地了解该技术。同时,多动手实践,通过尝试构建不同的数据流,逐渐熟悉Node-RED的各种功能和节点。 总之,零基础小白学习Node-RED的第一条数据流并不复杂,关键是要有耐心和坚持,不断积累经验和知识,才能在Node-RED中发挥出更大的创造力和效益。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值