基础开发指南
本章将带您从零开始学习n8n工作流开发,包括环境搭建、基础概念和第一个工作流的创建。
环境搭建
方法一:Docker部署(推荐)
Docker是最简单快速的部署方式,适合快速体验和开发测试。
# 拉取n8n镜像
docker pull n8nio/n8n
# 运行n8n容器
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
访问 http://localhost:5678 即可开始使用n8n。
方法二:npm安装
如果您熟悉Node.js环境,可以直接通过npm安装:
# 全局安装n8n
npm install n8n -g
# 启动n8n
n8n start
# 或者直接运行
npx n8n
方法三:Docker Compose部署
对于需要持久化数据的生产环境,推荐使用Docker Compose:
# docker-compose.yml
version: '3.8'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8nuser
- DB_POSTGRESDB_PASSWORD=n8npassword
volumes:
- ~/.n8n:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:13
restart: always
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8nuser
- POSTGRES_PASSWORD=n8npassword
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
# 启动服务
docker-compose up -d
基础概念详解
1. 节点(Nodes)
节点是n8n工作流的基本构建块,每个节点执行特定的功能:
触发节点(Trigger Nodes)
- Manual Trigger: 手动触发,用于测试和调试
- Cron: 定时触发,支持标准的cron表达式
- Webhook: HTTP触发,接收外部系统的请求
- Email Trigger: 监听邮件触发
- File Trigger: 监听文件变化
常用功能节点
- HTTP Request: 发送HTTP请求到API端点
- Code: 执行自定义JavaScript代码
- IF: 条件判断节点
- Switch: 多条件分支节点
- Set: 设置和修改数据字段
- Move Binary Data: 处理文件和二进制数据
应用集成节点
- Gmail: Google邮箱操作
- Slack: Slack消息和频道管理
- Google Sheets: Google表格数据操作
- MySQL: 数据库查询和操作
- AWS: 各种AWS服务集成
2. 连接(Connections)
连接定义了数据在节点之间的流动方向:
- 主连接(Main): 传递主要的数据流
- 错误连接(Error): 处理错误情况
- 条件连接: 基于条件的分支连接
3. 数据格式
n8n使用JSON格式在节点之间传递数据:
[
{
"json": {
"name": "John Doe",
"email": "john@example.com",
"age": 30
},
"binary": {}
}
]
- json: 存储结构化数据
- binary: 存储文件、图片等二进制数据
4. 表达式和变量
n8n支持强大的表达式系统来动态处理数据:
// 访问前一个节点的数据
{{ $json.name }}
// 访问特定节点的数据
{{ $node["HTTP Request"].json.data }}
// 使用JavaScript表达式
{{ $json.firstName + ' ' + $json.lastName }}
// 格式化日期
{{ $now.format('YYYY-MM-DD') }}
// 条件表达式
{{ $json.status === 'active' ? 'Yes' : 'No' }}
创建第一个工作流
让我们创建一个简单的工作流来理解基本概念:
示例:每日天气推送工作流
这个工作流将每天获取天气信息并发送邮件通知。
步骤1:添加定时触发节点
- 点击 "+" 添加新节点
- 选择 "Cron" 节点
- 设置 "Mode" 为 "Every Day"
- 设置 "Hour" 为 "8"(每天上午8点触发)