n8n 教程:使用 Code 节点处理数据

在 n8n 中,Code 节点提供了强大的数据处理能力,让你可以使用 Javascript 或 Python 代码对数据进行自定义操作。无论你是需要对每个数据项进行独立处理,还是对整个数据集进行汇总计算,Code 节点都能满足,因为本质上就是自定义代码。

执行模式

Code 节点提供了两种执行模式:

  • Run Once for All Items (对所有项目运行一次):这是默认模式。在这种模式下,无论输入数据有多少项,代码只执行一次。这适用于需要对整个数据集进行汇总计算的场景。
  • Run Once for Each Item (对每个项目运行一次):选择此模式可以让代码对每个输入数据项都执行一次。这适用于需要对每个数据项进行独立处理的场景。

使用 JavaScript 或 Python

Code 节点支持使用 JavaScript 或 Python 编写代码。 你可以根据自己的熟悉程度和需求选择合适的语言。

文件系统和 HTTP 请求

在 Code 节点中,你可以使用特定的函数访问文件系统和发送 HTTP 请求。 这样就可以读取外部文件、调用 API 接口等,极大地扩展了数据处理的可能性。

关键概念

使用 Code 节点时,你需要理解以下关键概念:

  • 数据结构: 了解 Code 节点接收的数据结构,以及从节点输出数据的要求。
    • n8n 使用一种特定的 JSON 结构来表示数据。 在编写代码时,你需要了解如何访问和操作这种结构中的数据。
    • 更多关于 n8n 数据结构的信息,请参考官方文档: https://docs.n8n.io/data/data-structure/
  • 项目链接: 学习数据项目的工作原理,以及如何链接到先前节点的项目。
    • 当输入和输出项目的数量不匹配时,你需要在代码中处理项目链接。
    • 项目链接允许你灵活地控制数据在不同节点之间的流动。
    • 更多关于 n8n 项目链接的信息,请参考官方文档: https://docs.n8n.io/data/data-mapping/data-item-linking/

示例代码

以下是一些示例代码,展示了如何在 Code 节点中使用 JavaScript 和 Python:

JavaScript – 对每个项目运行一次,将输入数据加倍

const items = $input.all();

return items.map(item => ({
  json: {
    number: item.json.number * 2
  }
}));

Python – 对所有项目运行一次,计算所有数字的总和

import functools

items = $input.all()

sum = functools.reduce(lambda a, b: a + b['json']['number'], items, 0)

return [{'json': {'sum': sum}}]

在上面的示例代码中:

  • $input.all() 用于获取所有输入数据项。
  • item.json 用于访问每个数据项的 JSON 数据。
  • return 语句用于返回处理后的数据。

通过灵活运用 Code 节点和以上知识点, 可以轻松地在 n8n 中实现各种自定义数据处理逻辑,构建强大的自动化流程。