变更 (change)
设置、更改或删除消息属性。
输入
任何消息对象。
输出
修改后的消息对象。
详细说明
变更节点可以设置、更改或删除消息的属性。
可以配置多个规则,按顺序应用于消息。
可用操作
- 设置: 设置属性值
- 更改: 搜索和替换属性值
- 删除: 删除属性
- 移动: 移动属性到新位置
值类型
可以设置为:
- 字符串
- 数字
- 布尔值
- 时间戳
- JSON
- Buffer
- 表达式结果
- 环境变量
- 其他消息属性
示例
设置属性:
javascript
// 输入
msg = {payload: "hello"}
// 规则: 设置 msg.topic = "greeting"
// 输出
msg = {
payload: "hello",
topic: "greeting"
}
更改文本:
javascript
// 输入
msg = {payload: "Hello World"}
// 规则: 将 "World" 替换为 "Node-RED"
// 输出
msg = {payload: "Hello Node-RED"}
删除属性:
javascript
// 输入
msg = {
payload: "data",
topic: "test",
_internal: "remove me"
}
// 规则: 删除 msg._internal
// 输出
msg = {
payload: "data",
topic: "test"
}
移动属性:
javascript
// 输入
msg = {payload: "data"}
// 规则: 移动 msg.payload 到 msg.data
// 输出
msg = {data: "data"}
最佳实践
- 属性操作
- 使用清晰的属性名
- 避免属性冲突
- 保持属性一致
- 注意属性类型
- 值处理
- 验证输入值
- 转换数据类型
- 处理特殊值
- 保持值格式
- 性能优化
- 减少操作数量
- 优化属性路径
- 避免重复操作
- 控制消息大小
- 错误处理
- 验证属性存在
- 处理类型错误
- 记录错误信息
- 提供默认值