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
|
是否创建缺失的父级属性 |