n8n 表达式教程:动态设置节点参数

在使用 n8n 构建自动化流程时,你可能需要根据先前节点的数据、工作流程信息或 n8n 环境动态地设置节点参数,可以使用 n8n 的表达式功能。

什么是表达式?

表达式本质上是一些 JavaScript 代码片段,n8n 在执行过程中会对其进行解析和执行,并将结果用于设置节点参数。自 1.9.0 版本起,n8n 使用了新的模板语言来定义表达式。

表达式语法

n8n 表达式使用 ${{ }} 来包裹 JavaScript 代码。例如,要访问第一个节点的第一个输出项的 name 属性,可以使用以下表达式:

{{ $nodes[0].data[0].json.name }} 

访问数据

表达式可以访问以下数据:

  • 先前节点的数据: 通过 $nodes 对象访问。例如,$nodes[0].data 表示第一个节点的所有输出数据。
  • 工作流程信息: 通过 $workflow 对象访问,例如 $workflow.id 表示工作流程 ID。
  • n8n 环境: 通过 $env 对象访问,例如 $env.HOST 表示 n8n 实例的地址。

执行 JavaScript 代码

可以在表达式中使用任何有效的 JavaScript 代码,例如:

  • 字符串操作: {{ $nodes[0].data[0].json.name.toUpperCase() }} 将字符串转换为大写。
  • 日期格式化: {{ new Date().toISOString() }} 获取当前时间并格式化为 ISO 格式。
  • 条件语句: {{ $nodes[0].data.length > 0 ? $nodes[0].data[0].json.name : 'No data' }} 根据条件返回不同的值。

通过学习和使用 n8n 表达式,你可以轻松地创建更加灵活和强大的自动化工作流程。