n8n半开放式节点(Code/HTTP Request)

2025-06-06 1,298

在自动化工作流工具中,n8n的优势在于其半开放式节点设计。当官方没有提供特定服务的集成节点时,用户可以通过这些节点手动实现功能适配。其中Code节点和HTTP Request节点是最常用的两种半开放式节点,为n8n的功能扩展提供了有力支持。

Code节点可以让用户直接编写JavaScript或Python代码,实现n8n内置功能之外的自定义逻辑。而HTTP Request节点则使用户能够向任意URL发起HTTP请求,从而将n8n未集成的第三方服务(如飞书、企业微信等)纳入工作流中。

一、n8n Code节点

Code节点是n8n中实现自定义功能的重要工具,它提供了灵活的代码执行能力。该节点有三个核心参数:

n8n半开放式节点(Code/HTTP Request)

1、Mode(运行模式)

决定Code节点如何处理上游传入的数据:

(1)Run Once for All items:对上游传来的整组数据执行一次代码,适用于需要处理数据集整体的操作,如增减行、删除列等。

(2)Run Once for Each Item:对上游数据的每一行单独执行一次代码,适用于逐行处理数据的场景,如修改每行中的特定字段。

2、Language(语言选择)

支持JavaScript和Python两种语言:

(1)JavaScript:执行稳定性更高,是推荐的选择。

(2)Python:基于Pyodide实现,仅包含少数基础库且性能有限,建议仅在必要时使用。

3、代码编辑框

用户可在此编写实际执行的代码。代码中支持引用上游节点的输出变量,但需手动编写引用语法。例如:

const articles = $node[“Aggregate”].json[“data”]; // 假设 ‘Set’ 是你的上游节点,输出了文章的数组
let fullText = “”;
let index = 1; // 用于给文章编号

articles.forEach((article) => {
fullText += `第${index}篇标题: \n# ${article.title}\n第${index}篇正文:\n${article.markdown}\n第${index}篇source: ${article.link}\n\n`;
if (index < articles.length) { // 在除了最后一篇文章外的每篇文章后添加分隔符
fullText += “—————\n\n”;
}
index++; // 增加文章编号
});

return [{json: {fullText}}];

4、Code节点注意事项

(1)默认仅引用少量基础库。

(2)不支持直接读写本地文件,需配合Read File(s) From Disk或Write File to Disk节点使用。

(3)不支持发起HTTP请求,网络请求需使用HTTP Request节点。

(4)若完全不会编程,可使用n8n官方云服务的AI Code功能,通过自然语言生成代码。

二、 n8n HTTP Request节点

HTTP Request节点用于向任意URL发起HTTP请求,是集成第三方服务的关键工具。其核心参数包括:

1、Method(请求方法)

支持多种HTTP请求方法:

  • GET:获取资源数据(最常用)
  • POST:提交数据至资源
  • PUT:更新完整资源
  • DELETE:删除资源
  • HEAD:获取资源头部信息
  • OPTIONS:查询资源支持的通信选项
  • PATCH:部分更新资源

2、URL

请求的目标地址,可包含上游节点的动态变量,如:”https://api.notion.com/v1/blocks/{{ $(‘Notion’).item.json.id }}/children”

3、Authentication(身份验证)

支持三种认证方式:

  • None:无需认证
  • Predefined Credential Type:使用n8n预制的认证类型(如Notion、GitHub等)
  • Generic Credential Type:自定义认证方式

4、Send Query Parameters

添加URL查询参数(格式:key=value)。

5、Send Headers

添加HTTP请求头(如Content-Type、Authorization等)。

6、Send Body

添加请求体数据,支持多种格式(JSON、表单等),适用于传递复杂参数或提交内容。

HTTP Request节点使用场景:

  • API数据获取:调用第三方API
  • 数据提交:向API提交表单或上传文件
  • 网页爬虫触发:发起HTTP请求触发爬虫任务
  • 未集成服务对接:连接n8n未内置的服务

调试建议:由于n8n的HTTP Request调试界面不够友好,建议使用Postman或RapidAPI等专业工具先进行API请求调试,然后将调试成功的请求导出为cURL格式,再通过n8n HTTP Request节点的”Import cURL”功能导入。

三、实际案例

以向Notion页面追加内容为例,HTTP Request节点的配置步骤如下:

n8n半开放式节点(Code/HTTP Request)

1、Method:选择”PATCH”。

n8n半开放式节点(Code/HTTP Request)

2、URL:”https://api.notion.com/v1/blocks/{{ $(‘Notion’).item.json.id }}/children”
(其中”{{ $(‘Notion’).item.json.id }}”为上游节点输出的Notion页面ID)。

3、Authentication:选择”Predefined Credential Type”,并配置Notion API凭证。

4、Send Query Parameters:不设置。

5、Send Headers:不设置(使用预制认证时自动添加)。

6、Send Body: Body Parameters添加”children”字段,值为”{{ $json.data }}”(上游传递的JSON数据)。

n8n半开放式节点(Code/HTTP Request)

7、Options配置: 开启Batching,设置每批1个items,间隔4秒 (避免请求频率过高被Notion API限制)

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。