Skip to content

使用代码节点

使用代码节点编写自定义 JavaScript 或 Python,并将其作为工作流程中的一个步骤运行。

n8n 编码

本页提供有关代码节点的使用信息。有关 n8n 中编码的更多指导,请参阅代码部分。它包括:

示例和模板

有关帮助您入门的使用示例和模板,请参阅 n8n 的代码集成页面。

函数和函数项节点

从 0.198.0 版本开始,代码节点取代了函数节点和函数项节点。如果您使用的是旧版本的 n8n,您仍然可以查看函数节点文档函数项节点文档

用法

如何使用代码节点。

选择模式

有两种模式:

  • 对所有项目运行一次:这是默认设置。当您的工作流运行时,无论输入项目有多少个,代码节点中的代码都只会执行一次。
  • 为每个项目运行一次:如果您希望代码为每个输入项目运行,请选择此项。

JavaScript

Code 节点支持 Node.js。

支持的 JavaScript 功能

代码节点支持:

  • 承诺。您可以返回一个可相应解析的承诺,而不是直接返回项目。
  • 使用 写入浏览器控制台。这对于调试和排除工作流程故障非常有用。

外部库

如果您自行托管 n8n,则可以在 Code 节点中导入并使用内置和外部 npm 模块。要了解如何启用外部模块,请参阅在 Code 节点中启用模块指南。

如果您使用 n8n Cloud,则无法导入外部 npm 模块。n8n 为您提供了两个模块:

内置方法和变量

n8n 提供了用于处理数据和访问 n8n 数据的内置方法和变量。有关更多信息,请参阅内置方法和变量

使用内置方法和变量的语法是或。在代码节点或表达式编辑器中键入以查看建议的方法和变量的列表。

键盘快捷键

代码节点编辑环境支持省时实用的键盘快捷键,可用于自动补全、代码折叠以及使用多光标等一系列操作。完整列表可在键盘快捷键列表中找到。

Python

n8n 在 1.0 版本中增加了对 Python 的支持。但它不包含 Python 可执行文件。相反,n8n 使用Pyodide提供 Python 支持,Pyodide 是 CPython 到 WebAssembly 的移植版。这将可用的 Python 软件包限制为Pyodide 附带的软件包。n8n 会在您首次使用时自动下载该软件包。

比 JavaScript 慢

Code 节点处理 Python 的时间比处理 JavaScript 的时间要长。这是因为额外的编译步骤。

内置方法和变量

n8n 提供了用于处理数据和访问 n8n 数据的内置方法和变量。有关更多信息,请参阅内置方法和变量

使用内置方法和变量的语法是或。在代码节点中键入以查看建议的方法和变量的列表。

键盘快捷键

代码节点编辑环境支持省时实用的键盘快捷键,可用于自动补全、代码折叠以及使用多光标等一系列操作。完整列表可在键盘快捷键列表中找到。

文件系统和 HTTP 请求

您无法访问文件系统或发出 HTTP 请求。请改用以下节点:

n8n 编码

在 n8n 中,有两个地方可以使用代码:代码节点和表达式编辑器。使用任何一个区域时,您都需要了解一些关键概念,以及一些内置方法和变量来帮助完成常见任务。

关键概念

使用代码节点时,您需要了解以下概念:

  • 数据结构:了解在代码节点中接收的数据,以及从节点输出数据的要求。
  • 项链接:了解数据项的工作原理,以及如何链接到先前节点的项。当输入和输出项的数量不匹配时,你需要在代码中处理项链接。

内置方法和变量

n8n 包含内置方法和变量。它们支持:

  • 访问特定项目数据
  • 访问有关工作流、执行和 n8n 环境的数据
  • 方便变量来帮助处理数据和时间

有关详细信息,请参阅内置方法和变量

在代码节点中使用AI

功能可用性

代码节点中的 AI 辅助功能可供云用户使用。自托管 n8n 中不提供此功能。

AI 生成的代码会覆盖你的代码

如果您已经在“代码”选项卡上编写了一些代码,则 AI 生成的代码将替换它。n8n 建议使用 AI 作为起点来创建初始代码,然后根据需要对其进行编辑。

要使用 ChatGPT 在代码节点中生成代码:

  1. 在代码节点中,将语言设置为JavaScript
  2. 选择“询问 AI”选项卡。
  3. 写下您的查询。
  4. 选择生成代码。n8n 将您的查询发送到 ChatGPT,然后在代码选项卡中显示结果。