跳到主要内容

表达式与数据节点

n8n 提供多种数据处理和转换方式。了解各自适用场景,有助于构建高效工作流。

方式适用需求示例可用环境
表达式使用已有数据设置单个参数值获取 {{$json.city}}、格式化日期、简单计算Cloud 和自托管
Code 节点编写完整 JavaScript/Python 进行复杂转换重组数据、遍历数据项、使用外部库Cloud 和自托管
AI Transform 节点根据自然语言生成转换代码Group by user and sum totals(按用户分组并求和)、categorize by sentiment(按情感分类)仅 Cloud
其他数据转换节点通过可视化界面完成常见操作聚合数据项、拆分数组、排序、去重Cloud 和自托管

表达式 ​

表达式是使用 n8n 的 {{ ... }} 语法,直接写在节点参数中的小段类似 JavaScript 的代码。它可以根据前面节点的数据、工作流元数据或环境变量动态设置参数值。

信息

尽可能使用表达式

表达式能即时预览计算结果,因此适用时应优先使用。

表达式的适用场景:

  • 从前面节点的数据中提取值,例如 {{$json.body.city}}。
  • 直接在字段中进行轻量转换或计算。
  • 避免添加额外节点,让逻辑靠近要设置的参数。

Code 节点 ​

Code 节点专门用于编写 JavaScript 或 Python,并作为工作流步骤运行。可以访问前面节点传入的数据,通过添加、删除或更新数据项进行处理,也可以创建所需的自定义函数,并通过 $ 语法使用 n8n 内置方法和变量。

Code 节点的适用场景:

  • 需要比表达式更复杂的逻辑或转换,例如重组数组和对象、聚合或拆分数据项,以及自定义算法。
  • 希望一次转换多个数据项。
  • 希望使用 Promise、console.log,或在自托管环境中使用外部 npm 模块。

AI Transform 节点 ​

此节点根据简短自然语言提示词生成代码片段,能够理解上下文、工作流节点和数据类型。生成的代码在节点中为只读,可复制到 Code 节点编辑。

AI Transform 节点的适用场景:

  • 清楚需要什么转换,但不想手写代码。
  • 希望 AI 起草转换逻辑,再直接在节点中运行,或复制到 Code 节点进一步定制。

其他数据转换节点 ​

n8n 提供一系列数据转换节点:

  • Aggregate:将多个独立数据项或其中部分内容聚合为单个数据项。
  • Limit:移除超过指定最大数量的数据项。
  • Remove Duplicates:识别并删除所有字段或部分字段相同的数据项。
  • Sort:按所需顺序整理列表,或随机选择数据。
  • Split Out:将包含列表的单个数据项拆分为多个数据项。
  • Summarize:聚合数据项,类似 Excel 数据透视表。

数据转换节点的适用场景:

  • 需要的操作与某个专用转换节点的用途相符。
  • 希望使用带有引导界面的无代码方案。
  • 更喜欢可视化构建,而不是编写表达式或代码。

更多引用、转换和组织数据的方式,请参阅处理数据。

相关资源 ​

本文为社区中文翻译。查看对应英文原文