Skip to content

开关 (switch)

根据消息属性值将消息路由到不同的输出。

输入

任何消息对象。

输出

根据规则匹配的消息(发送到对应的输出端口)。

详细说明

开关节点根据消息属性值评估一组规则,将消息路由到不同的输出。

规则类型

  • ==: 等于
  • !=: 不等于
  • <: 小于
  • <=: 小于等于
  • >: 大于
  • >=: 大于等于
  • 在...之间: 数值范围
  • 包含: 字符串包含
  • 匹配正则: 正则表达式匹配
  • 为真: 布尔值为真
  • 为假: 布尔值为假
  • 为空: null或undefined
  • 不为空: 不是null或undefined
  • 有类型: 指定的数据类型

路由模式

  • 检查所有规则: 消息可能发送到多个输出
  • 停止于第一个匹配: 只发送到第一个匹配的输出

示例

数值比较:

javascript
// 输入
msg = {payload: 25}

// 规则:
// 输出1: payload >= 30 (高温)
// 输出2: payload < 10 (低温)  
// 输出3: 其他情况 (正常)

// 结果: 发送到输出3

字符串匹配:

javascript
// 输入
msg = {payload: "error: connection failed"}

// 规则:
// 输出1: payload 包含 "error"
// 输出2: payload 包含 "warning"

// 结果: 发送到输出1

多条件:

javascript
// 输入
msg = {
    payload: 15,
    topic: "temperature"
}

// 规则:
// 输出1: payload > 20 AND topic == "temperature"
// 输出2: payload <= 20 AND topic == "temperature"

// 结果: 发送到输出2

蜀ICP备2025139593号