代码节点#
使用代码节点编写自定义 JavaScript 或 Python 代码,并将其作为工作流中的一个步骤运行。
在 n8n 中编码 本页提供有关代码节点的使用信息。有关在 n8n 中编码的更多指导,请参阅代码部分,其中包含:
- 内置方法和变量的参考文档
- 处理日期和查询 JSON的指南
- 代码示例集中不断增长的示例集合
示例和模板 有关入门的用法示例和模板,请参阅 n8n 的代码集成页面。
Function 和 Function Item 节点 代码节点从 0.198.0 版本起取代了 Function 和 Function Item 节点。如果您使用的是旧版 n8n,仍可查看Function 节点文档和Function Item 节点文档。
使用方法#
如何使用代码节点。
选择模式#
提供两种模式:
- 对所有项运行一次:此为默认模式。工作流运行时,无论输入项数量多少,代码节点中的代码仅执行一次。
- 对每个项运行一次:若需为每个输入项单独执行代码,请选择此模式。
JavaScript#
代码节点支持 Node.js。
支持的 JavaScript 功能#
代码节点支持:
- Promise。您可以直接返回 Promise 而非直接返回数据项,该 Promise 会相应解析。
- 使用
console.log写入浏览器控制台。这对调试和排查工作流问题非常有用。
外部库#
如果您自行托管 n8n,可以在代码节点中导入并使用内置及外部的 npm 模块。要了解如何启用外部模块,请参阅在代码节点中启用模块指南。 如果您使用 n8n Cloud,则无法导入外部 npm 模块。n8n 为您提供了两个可用模块:
- crypto Node.js 模块
- moment npm 包
内置方法和变量#
n8n 提供了用于处理数据和访问 n8n 数据的内置方法和变量。更多信息请参阅内置方法和变量文档。
使用内置方法和变量的语法是 $variableName 或 $methodName()。在代码节点或表达式编辑器中输入 $ 即可查看建议方法和变量列表。
键盘快捷键#
代码节点编辑环境支持一系列省时实用的键盘快捷键,包括自动补全、代码折叠和多光标操作等功能。查看完整的键盘快捷键列表。
Python (Pyodide - 旧版)#
Pyodide 是旧版功能。n8n 的未来版本将不再支持此功能。 n8n 在 1.0 版本中增加了 Python 支持。它不包含 Python 可执行文件,而是通过 Pyodide(CPython 到 WebAssembly 的移植版本)提供 Python 支持。这限制了可用 Python 包的范围,仅限于 Pyodide 包含的包。首次使用时,n8n 会自动下载相关包。
运行速度低于 JavaScript 代码节点处理 Python 代码所需时间比 JavaScript 更长,这是由于额外的编译步骤导致的。
内置方法和变量#
n8n 提供了用于处理数据和访问 n8n 数据的内置方法和变量。更多信息请参阅内置方法和变量文档。
使用内置方法和变量的语法是 _variableName 或 _methodName()。在代码节点中输入 _ 即可查看建议方法和变量列表。
键盘快捷键#
代码节点编辑环境支持一系列省时实用的键盘快捷键,包括自动补全、代码折叠和多光标操作等功能。查看完整的键盘快捷键列表。
文件系统和 HTTP 请求#
无法直接访问文件系统或发起 HTTP 请求。请改用以下节点:
- 从磁盘读取/写入文件
- HTTP 请求
Python(原生版本 - beta)#
n8n 在 1.111.0 版本中新增了使用任务运行器(beta)的原生 Python 支持。 与 Pyodide 的主要差异:
- 原生 Python 仅支持全项目模式下的
_items和逐项模式下的_item,不支持其他 n8n 内置方法和变量 - 若
n8nio/runners镜像包含并明确允许第三方库,原生 Python 支持从标准库和第三方库导入原生 Python 模块。详见为任务运行器添加额外依赖项 - 原生 Python 默认禁用不安全的内置功能。详见任务运行器环境变量
- Pyodide 支持点访问符号(如
item.json.myNewField),而原生 Python 仅支持括号访问符号(如item["json"]["my_new_field"])。Pyodide 支持的某些语法结构在原生 Python 中可能不合法,还存在其他细微语法差异
请注意升级到原生 Python 属于破坏性变更,您可能需要调整 Python 脚本以适配原生 Python 运行器。 此功能目前处于测试阶段,后续可能发生变化。待功能稳定后,n8n 将在 2025 年逐步向 n8n 云用户推送。自托管用户可立即体验并提供反馈。
在 n8n 中编写代码#
在 n8n 中有两处可使用代码:代码节点和表达式编辑器。使用这两处功能时,您需要了解一些关键概念,以及用于辅助常见任务的内置方法和变量。
关键概念#
使用代码节点时,需要理解以下概念:
- 数据结构:了解代码节点接收的数据格式及节点输出数据的要求
- 数据项关联:掌握数据项的工作机制,以及如何关联先前节点的数据项。当输入与输出数据项数量不匹配时,需要在代码中处理数据项关联
内置方法和变量#
n8n 包含内置方法和变量,这些功能支持:
- 访问特定项目数据
- 获取工作流、执行记录和 n8n 环境相关数据
- 提供处理数据和时间的便捷变量
更多信息请参阅内置方法和变量。
在代码节点中使用 AI#
功能可用性说明: 代码节点的 AI 辅助功能仅向云用户开放,自托管版本的 n8n 不可用。
AI 生成代码会覆盖现有代码 如果您已在代码标签页中编写了代码,AI 生成的代码将会覆盖原有内容。n8n 建议将 AI 作为创建初始代码的起点,然后根据需要进行编辑。
通过 ChatGPT 在代码节点中生成代码的步骤:
- 在代码节点中将语言设置为 JavaScript
- 选择 Ask AI 标签页
- 输入您的查询需求
- 点击 Generate Code,n8n 会将查询发送至 ChatGPT,随后在代码标签页中显示生成结果
常见问题#
关于常见问题及其解决方案,请参阅常见问题。
文档互动反馈 本页面 !点赞 有帮助 !点踩 无帮助 感谢您的反馈! 提交 上一页 AI Transform 下一页 键盘快捷键 基于 Material for MkDocs Insiders 构建