@node-red/util.util

cloneMessage(msg) → {Object}

安全地克隆消息对象。这处理了不能克隆的msg.req/msg.res对象。

参数:
名称 类型 描述
msg any

要克隆的消息对象

返回:
Type:
Object

克隆的消息

compareObjects(obj1, obj2) → {boolean}

比较两个对象,处理各种JavaScript类型。

参数:
名称 类型 描述
obj1 any
obj2 any
返回:
Type:
boolean

这两个对象是否相同

encodeObject(msg, opts) → {Object}

将对象编码为JSON而不丢失关于非JSON类型(如Buffer和Function)的信息。

此功能与编辑器中的反向操作紧密关联

参数:
名称 类型 描述
msg Object
opts Object
返回:
Type:
Object

编码后的对象

ensureBuffer(o) → {String}

使用类型相关的方法将提供的参数转换为Buffer。

参数:
名称 类型 描述
o any

要转换为Buffer的属性

返回:
Type:
String

缓冲区版本

ensureString(o) → {String}

将提供的参数转换为字符串,使用类型相关的方法。

参数:
名称 类型 描述
o any

要转换为字符串的属性

返回:
Type:
String

字符串化版本

evaluateEnvProperty(value, node) → {String}

检查字符串是否包含任何环境变量说明符,并返回替换为其对应值后的字符串。

例如,如果环境变量 WHO 设置为 Joe,字符串 Hello ${WHO}! 将返回 Hello Joe!

参数:
名称 类型 描述
value String

要解析的字符串

node Node

评估属性的节点

返回:
Type:
String

解析后的字符串

evaluateJSONataExpression(expr, msg, callback) → {any}

评估一个JSONata表达式。 在传递给此函数之前,该表达式必须已使用@node-red/util-util.prepareJSONataExpression进行预处理。

参数:
名称 类型 描述
expr Object

准备好的JSONata表达式

msg Object

要评估的消息对象

callback function

(可选) 在表达式求值时调用

返回:
Type:
any

如果没有提供回调函数,表达式的结果

评估节点属性(value, type, node, msg, callback) → {any}

根据属性值的类型对其进行评估。

参数:
名称 类型 描述
value String

原始值

type String

值的类型

node Node

评估属性的节点

msg Object

要评估的消息对象

callback function

(可选) 在属性被评估时调用

返回:
Type:
any

评估的属性,如果没有提供callback

generateId() → {String}

生成一个伪唯一随机ID。

返回:
Type:
String

一个随机生成的ID

getMessageProperty(msg, expr) → {any}

获取消息对象的属性。

与@node-red/util-util.getObjectProperty不同,如果属性表达式前面带有msg.,该函数会将其去除。

参数:
名称 类型 描述
msg Object

消息对象

expr String

属性表达式

返回:
Type:
any

消息属性,如果不存在则为undefined

获取对象属性(msg, expr) → {any}

获取对象的属性。

参数:
名称 类型 描述
msg Object

对象

expr String

属性表达式

返回:
Type:
any

对象属性,如果不存在则为undefined

normaliseNodeTypeName(name) → {String}

将节点类型名称规范化为驼峰式命名。

例如:a-random node type 将标准化为 aRandomNodeType

参数:
名称 类型 描述
name String

节点类型

返回:
Type:
String

标准化名称

normalisePropertyExpression(str) → {Array}

解析属性表达式,例如msg.foo.bar[3],以验证其有效性并将其转换为用属性名称数组表示的规范版本。

例如,a["b"].c 返回 ['a','b','c']

参数:
名称 类型 描述
str String

属性表达式

返回:
Type:
Array

标准化表达式

解析上下文存储(键名) → {对象}

解析由TypedInput生成的上下文属性字符串,以提取其中可能存在的存储名称。

例如,#:(file)::foo 的结果是 { store: "file", key: "foo" }

参数:
名称 类型 描述
key String

要解析的上下文属性字符串

返回:
Type:
Object

解析后的属性

准备JSONata表达式(值, 节点) → {对象}

准备一个JSONata表达式用于评估。 这将为表达式附加Node-RED特定的函数。

参数:
名称 类型 描述
value String

JSONata表达式

node Node

评估属性的节点

返回:
Type:
Object

可以评估的JSONata表达式

设置消息属性(msg, prop, value, createMissing)

设置消息对象的一个属性。

与@node-red/util-util.setObjectProperty不同,如果属性表达式前面带有msg.,此函数会将其去除。

参数:
名称 类型 描述
msg Object

消息对象

prop String

属性表达式

value any

要设置的值

createMissing boolean

是否创建缺失的父级属性

设置对象属性(msg, prop, value, createMissing)

设置对象的属性。

参数:
名称 类型 描述
msg Object

对象

prop String

属性表达式

value any

要设置的值

createMissing boolean

是否创建缺失的父级属性