代码节点#
使用代码节点编写自定义JavaScript或Python代码,并将其作为工作流中的一个步骤运行。
在n8n中编码
本页面提供关于代码节点的使用信息。如需获取更多在n8n中编码的指导,请参阅代码部分。内容包括:
示例和模板
如需使用示例和模板帮助您快速上手,请参阅n8n的Code integrations页面。
用法#
如何使用代码节点。
选择模式#
有两种模式:
- 对所有项目只运行一次: 这是默认设置。当您的工作流运行时,代码节点中的代码只执行一次,无论有多少输入项。
- 每个项目运行一次: 如果希望代码为每个输入项运行,请选择此项。
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生成代码:
- 在代码节点中,将语言设置为JavaScript。
- 选择询问AI标签页。
- 编写您的查询。
- 选择生成代码。n8n会将您的查询发送至ChatGPT,然后在代码标签页中显示结果。
常见问题#
有关常见问题或疑问及建议解决方案,请参阅常见问题。