Skip to content

变更 (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"}

最佳实践

  1. 属性操作
  • 使用清晰的属性名
  • 避免属性冲突
  • 保持属性一致
  • 注意属性类型
  1. 值处理
  • 验证输入值
  • 转换数据类型
  • 处理特殊值
  • 保持值格式
  1. 性能优化
  • 减少操作数量
  • 优化属性路径
  • 避免重复操作
  • 控制消息大小
  1. 错误处理
  • 验证属性存在
  • 处理类型错误
  • 记录错误信息
  • 提供默认值

蜀ICP备2025139593号