n8n 界面详解与常用节点介绍
在前面的文章中,我们已经创建了第一个工作流。今天我们来深入了解 n8n 的界面功能和各种节点类型,这些是构建复杂工作流的基础。
界面功能详解
工作流画布
缩放和导航
- 鼠标滚轮:缩放画布
- 拖拽空白区域:移动视图
- 右下角小地图:快速导航大型工作流
节点操作
- 单击节点:选中并显示配置面板
- 双击节点:快速编辑节点名称
- 拖拽节点:移动位置
- 删除键:删除选中的节点
连接操作
- 拖拽节点右侧的圆点:创建连接
- 点击连接线:选中连接
- 删除键:删除选中的连接
顶部工具栏
执行控制
- Execute Workflow:手动执行整个工作流
- Execute Node:只执行选中的节点
- Stop Execution:停止正在执行的工作流
工作流管理
- Save:保存工作流
- Settings:工作流设置(名称、描述、标签等)
- Share:分享工作流给其他用户
视图控制
- Zoom to Fit:自动调整缩放以显示整个工作流
- Zoom 100%:重置为默认缩放级别
左侧节点面板
节点按类型分组,可以通过搜索快速找到需要的节点:
搜索技巧
- 按名称搜索:直接输入节点名
- 按功能搜索:输入相关关键词
- 按服务搜索:输入第三方服务名称
右侧配置面板
节点配置
- Parameters:节点的主要配置参数
- Settings:节点的高级设置
- Notes:为节点添加说明文档
执行数据
- Input:查看节点接收到的数据
- Output:查看节点输出的数据
- JSON:以 JSON 格式查看数据
核心节点类型
触发器节点(Triggers)
触发器决定了工作流何时开始执行。
Manual Trigger
- 用途:手动触发工作流
- 场景:测试、一次性任务
- 配置:无需配置,点击即可触发
Cron Trigger
- 用途:定时触发工作流
- 场景:定期任务、报告生成
- 配置示例:
0 9 * * 1-5 # 工作日早上9点 0 */2 * * * # 每2小时 0 0 1 * * # 每月1号
Webhook Trigger
- 用途:通过 HTTP 请求触发
- 场景:接收外部系统通知
- 配置:设置 HTTP 方法和路径
Email Trigger
- 用途:收到邮件时触发
- 场景:邮件自动处理
- 配置:邮箱连接信息和过滤条件
数据处理节点
Set Node
- 用途:设置或修改数据
- 常用操作:
- 添加新字段
- 修改现有字段
- 删除不需要的字段
配置示例:
json
{
"values": {
"string": [
{
"name": "status",
"value": "processed"
}
],
"number": [
{
"name": "priority",
"value": 1
}
]
}
}
Code Node
- 用途:执行自定义 JavaScript 代码
- 场景:复杂数据处理、业务逻辑
- 可用对象:
items
:输入数据数组$node
:当前节点信息$workflow
:工作流信息
代码示例:
javascript
// 处理多个数据项
const processedItems = items.map(item => {
const data = item.json;
// 数据转换逻辑
return {
json: {
...data,
processedAt: new Date().toISOString(),
isValid: data.email && data.email.includes('@')
}
};
});
return processedItems;
Function Node
- 用途:简单的数据转换
- 与 Code Node 的区别:更轻量,适合简单操作
- 示例:格式化日期、字符串处理
Split In Batches
- 用途:将大量数据分批处理
- 场景:避免 API 限制、提高性能
- 配置:批次大小、处理间隔
条件控制节点
IF Node
- 用途:根据条件分支执行
- 支持的条件类型:
- 字符串比较
- 数字比较
- 布尔值判断
- 正则表达式匹配
配置示例:
json
{
"conditions": {
"string": [
{
"value1": "={{ $json.status }}",
"operation": "equal",
"value2": "active"
}
]
}
}
Switch Node
- 用途:多条件分支
- 场景:根据不同值执行不同操作
- 支持:数字、字符串、正则表达式匹配
Merge Node
- 用途:合并多个数据流
- 模式:
- Append:追加数据
- Pass-through:等待所有输入
- Wait:等待指定数量的输入
通信节点
HTTP Request
- 用途:调用 REST API
- 支持方法:GET、POST、PUT、DELETE 等
- 认证方式:Basic Auth、Bearer Token、OAuth
配置示例:
json
{
"method": "POST",
"url": "https://api.example.com/users",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{ $json.token }}"
},
"body": {
"name": "{{ $json.name }}",
"email": "{{ $json.email }}"
}
}
Email Send
- 用途:发送邮件
- 支持:HTML 内容、附件、抄送
- 配置:SMTP 服务器信息
Slack
- 用途:发送 Slack 消息
- 功能:发送消息、上传文件、更新状态
- 认证:OAuth 或 Bot Token
数据存储节点
Google Sheets
- 用途:读写 Google 表格
- 操作:读取、写入、更新、删除行
- 认证:Google OAuth
MySQL/PostgreSQL
- 用途:数据库操作
- 支持:查询、插入、更新、删除
- 配置:连接字符串、SQL 语句
Redis
- 用途:缓存操作
- 操作:GET、SET、DELETE、EXISTS
- 场景:临时数据存储、会话管理
节点配置技巧
使用表达式
n8n 支持在配置中使用表达式引用数据:
基本语法
javascript
{{ $json.fieldName }} // 引用当前数据的字段
{{ $node["Node Name"].json }} // 引用指定节点的数据
{{ $now }} // 当前时间
{{ $workflow.id }} // 工作流 ID
常用函数
javascript
{{ $json.name.toLowerCase() }} // 字符串转小写
{{ $json.price * 1.1 }} // 数学运算
{{ $json.date.toDate() }} // 日期转换
{{ $json.items.length }} // 数组长度
错误处理
Continue On Fail
- 启用后,节点执行失败不会中断工作流
- 适用于可选操作或需要容错的场景
Retry On Fail
- 设置重试次数和间隔
- 适用于网络请求等可能临时失败的操作
节点设置优化
Always Output Data
- 即使节点没有输出数据也会传递输入数据
- 用于保持数据流的连续性
Execute Once
- 即使接收到多个输入项,也只执行一次
- 适用于初始化操作
调试和测试
查看执行数据
- 执行工作流后,点击节点查看数据
- 使用 JSON 视图查看完整数据结构
- 检查数据类型和格式
使用 Console 节点
临时添加 Console 节点输出调试信息:
javascript
console.log('Debug info:', $json);
return items;
分步测试
- 先测试单个节点
- 逐步连接更多节点
- 确保每一步的数据流正确
小结
掌握 n8n 的界面和节点是构建复杂工作流的基础。主要要点:
- 界面操作:熟练使用画布、工具栏和配置面板
- 节点分类:理解触发器、处理、控制、通信等不同类型
- 表达式语法:学会引用数据和使用函数
- 错误处理:合理设置重试和容错机制
- 调试技巧:善用数据查看和分步测试
下一篇文章,我们将深入学习触发器的各种类型和使用场景,这是构建自动化工作流的关键环节。
记住,熟练掌握这些基础知识需要大量练习。建议你创建一些简单的测试工作流,尝试不同的节点组合,这样能更好地理解每个节点的特点和用法。