跳至内容

代码节点#

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

在n8n中编码

本页面提供关于代码节点的使用信息。如需获取更多在n8n中编码的指导,请参阅代码部分。内容包括:

示例和模板

如需使用示例和模板帮助您快速上手,请参阅n8n的Code integrations页面。

函数与函数项节点

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

用法#

如何使用代码节点。

选择模式#

有两种模式:

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

JavaScript#

代码节点支持Node.js。

支持的JavaScript功能#

代码节点支持:

  • Promises。您可以直接返回项目,也可以返回一个相应解析的promise。
  • 使用console.log写入浏览器控制台。这对调试和排查工作流问题非常有用。

外部库#

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

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

内置方法和变量#

n8n提供了内置方法和变量用于处理数据和访问n8n数据。更多信息请参考Built-in methods and variables

使用内置方法和变量的语法是$variableName$methodName()。在代码节点或表达式编辑器中输入$可查看建议方法和变量列表。

键盘快捷键#

代码节点编辑环境支持一系列节省时间且实用的键盘快捷键,从自动补全到代码折叠和使用多光标操作。完整列表可在键盘快捷键列表中查看。

Python#

n8n在1.0版本中添加了Python支持。它不包含Python可执行文件,而是通过Pyodide提供Python支持,这是CPython到WebAssembly的移植版本。这将可用的Python包限制在Pyodide包含的包范围内。n8n会在您首次使用时自动下载该包。

比JavaScript慢

Code节点处理Python比JavaScript耗时更长。这是由于额外的编译步骤所致。

内置方法和变量#

n8n提供了内置方法和变量用于处理数据和访问n8n数据。更多信息请参考Built-in methods and variables

使用内置方法和变量的语法是_variableName_methodName()。在代码节点中输入_可查看建议方法和变量列表。

键盘快捷键#

代码节点编辑环境支持一系列节省时间且实用的键盘快捷键,从自动补全到代码折叠和使用多光标操作。完整列表可在键盘快捷键列表中查看。

文件系统和HTTP请求#

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

在n8n中编写代码#

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

关键概念#

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

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

内置方法和变量#

n8n包含内置方法和变量。这些提供对以下功能的支持:

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

更多信息请参考内置方法和变量

在代码节点中使用AI#

功能可用性

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

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

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

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

  1. 在代码节点中,将语言设置为JavaScript
  2. 选择询问AI标签页。
  3. 编写您的查询。
  4. 选择生成代码。n8n会将您的查询发送至ChatGPT,然后在代码标签页中显示结果。

常见问题#

有关常见问题或疑问及建议解决方案,请参阅常见问题

优云智算