Duaer

表达式与代码

在 Duaer 表达式里使用快捷方法

在 Duaer 表达式里用 $json 读当前项,用 $("节点名") 读前面的节点,用 $now 和 $if() 处理时间和条件。

当前项和前面的节点

  • $json 是当前项的字段。$json.city 是其中的 city。
  • $binary 是当前项上的文件。
  • $("节点名").first() 取那个节点的第一项。last() 取最后一项。all() 取全部。
  • $("节点名").item 取和当前输出对应的那一项。对应规则见数据项在流程里怎么对应
  • $itemIndex 是当前项在这一批里的序号,从 0 开始。$runIndex 是这个节点第几次运行,也从 0 开始。
  • $prevNode.name、$prevNode.outputIndex、$prevNode.runIndex 描述紧挨着的上一个节点。

时间、条件和空值

  • $now 是当前日期时间。$today 是今天。格式化写成 $now.toFormat("yyyy-MM-dd")。细节见在 Duaer 里用 Luxon 处理日期
  • $if(条件, 成立时的值, 不成立时的值) 按条件选一个值。三元写法 条件 ? 甲 : 乙 也可以。
  • $ifEmpty(值, 默认值) 在值是 undefined、null、空字符串、空数组或空对象时返回默认值。
{{ $ifEmpty($json.city, "unknown") }}

这次执行、这条数字组织和变量

  • $execution.id 是这次执行的编号。$execution.mode 是手动还是线上触发。$execution.customData 读写自定义执行数据。
  • $workflow.id、$workflow.name、$workflow.active 是这条数字组织的编号、名字和是否激活。
  • $vars.键名 读取在 Duaer 里定义自定义变量

常见问题

在 Duaer 里 $ifEmpty 把哪些值当成空?

在 Duaer 表达式里,$ifEmpty(值, 默认值) 在值是 undefined、null、空字符串、空数组或没有字段的对象时返回默认值;其他值原样返回。

在 Duaer 里怎么格式化当前时间?

在 Duaer 表达式里,$now 是当前时间,$today 是今天。写成 {{ $now.toFormat("yyyy-MM-dd") }}。

同组

变量

在 Duaer 里定义自定义变量

在 Duaer 里用自定义变量存值,并在多条数字组织中复用。

表达式

在 Duaer 里用表达式转换数据

Duaer 表达式写在 {{ }} 里,可在支持表达式的参数中调用转换方法。只做字段整理时,先用 Edit Fields(Set)。

表达式

在 Duaer 里使用内置方法和变量

Duaer 在表达式里提供读取数据的变量和按类型调用的方法。Code 节点跑的是普通 JavaScript 和原生 Luxon。

表达式

在 Duaer 里使用 HTTP 节点分页变量

Duaer 的 HTTP Request 节点在分页表达式里提供 $pageCount、$request 和 $response。这三个名字只在该节点里有效。

转换

在 Duaer 里使用数据转换方法

在 Duaer 表达式里,在值后面调用转换方法,例如 {{ $json.name.toTitleCase() }}。按数组、布尔、日期、数字、对象、字符串分组。

转换

Duaer 数组上的转换方法

在 Duaer 表达式里,数组方法写在数组后面,例如 {{ $json.ids.unique() }}。average、max、min 遇到非数字会报错。

转换

Duaer 布尔值上的转换方法

在 Duaer 表达式里,布尔值可以判断空不空,也可以转成数字或字符串。true 转成数字是 1,false 是 0。

转换

Duaer 日期上的转换方法

Duaer 表达式里,$now 和 $today 是 Luxon 的 DateTime。字符串或数字要先 toDateTime(),再调用 format、plus、setZone。

转换

Duaer 数字上的转换方法

在 Duaer 表达式里,数字方法做取整、奇偶判断,以及转成布尔、字符串或 DateTime。round 取最接近的数,ceil 向上,floor 向下。

转换

Duaer 对象上的转换方法

在 Duaer 表达式里,对象方法用来判断字段、删字段、合并,以及把对象编成查询字符串。

转换

Duaer 字符串上的转换方法

在 Duaer 表达式里,字符串方法做大小写、截取、判断邮箱和网址,以及 base64 和 URL 编解码。

查询

在 Duaer 里用 JMESPath 查询 JSON

在 Duaer 里用 $jmespath(对象, "查询") 查询 JSON。表达式和 JavaScript Code 节点可用;Python Code 节点没有。

日期

在 Duaer 里用 Luxon 处理日期

Duaer 表达式里的日期是 Luxon 的 DateTime。$now 和 $today 直接就是。Code 节点用原生 Luxon,format() 和 plus(数量, 单位) 不能照搬。

示例

Duaer 表达式示例

这些 Duaer 示例都在表达式模式里:读当前项、补默认值、格式化日期,并在字段很多时改用 Edit Fields(Set)。

示例

Duaer 方法和变量对照

Duaer 表达式里最常用的名字:当前项用 $json,前面的节点用 $("节点名"),变量用 $vars,转换方法按数据类型分到各自的页面。