开关 (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