n8n 的本质是一个基于节点的可视化工作流程自动化工具。通过将不同的节点连接起来,你可以创建各种自定义的工作流程,从而实现自动化操作。
一、节点类型
1. 节点操作 (Triggers and Actions)
节点是 n8n 工作流程的基本构建块,每个节点代表一个特定的操作。节点操作主要分为两类:
- Triggers (触发器): 用于启动工作流程的节点,例如,当收到新邮件时触发。
- Actions (动作): 用于执行特定任务的节点,例如,发送 HTTP 请求、读写数据库等。
2. 核心节点
n8n 预置了许多常用的核心节点,涵盖了各种常见的功能,例如:
- HTTP Request: 发送 HTTP 请求到指定的 URL,可以用于与各种 API 进行交互。
- Cron: 根据 cron 表达式定时执行工作流程,例如,每天早上 8 点发送提醒邮件。
- Function: 执行自定义 JavaScript 代码,可以用于处理复杂逻辑。
3. 社区节点
除了核心节点,n8n 还拥有丰富的社区节点,由 n8n 社区开发者贡献,提供了更多更专业的节点功能。你可以在 n8n 官网的节点库中查找和安装社区节点。
4. 集群节点
对于需要高可用性和可扩展性的场景,n8n 支持部署为集群模式。集群节点可以分担工作负载,确保工作流程的稳定运行。
5. Credentials (凭证)
许多节点操作需要访问外部服务,例如数据库、API 等。Credentials 用于安全地存储和管理这些访问凭证,例如 API 密钥、用户名和密码等。
二、示例代码
以下示例展示了如何使用 n8n 创建一个简单的工作流程,该工作流程每天早上 8 点从 RSS 源获取最新的新闻标题,并将其发送到你的邮箱。
[
{
"id": "1",
"type": "n8n-nodes-base.cron",
"position": [100, 300],
"data": {
"name": "Every day at 8am",
"cronExpression": "0 8 * * *"
}
},
{
"id": "2",
"type": "n8n-nodes-base.httpRequest",
"position": [300, 300],
"data": {
"name": "Get RSS Feed",
"url": "https://example.com/rss.xml",
"returnFullResponse": true
}
},
{
"id": "3",
"type": "n8n-nodes-base.function",
"position": [500, 300],
"data": {
"name": "Extract Titles",
"code": "// Use a library like 'xml2js' to parse the RSS XML\n// and extract the titles of the news articles.\n"
}
},
{
"id": "4",
"type": "n8n-nodes-base.email",
"position": [700, 300],
"data": {
"name": "Send Email",
"to": "your.email@example.com",
"subject": "Latest News Headlines",
"body": "{{ $json[\"titles\"].join(\"\\n\") }}"
},
"credentials": {
"email": {
"id": "your-email-credential-id"
}
}
}
]
代码解释:
- Cron 节点 (ID: 1): 配置为每天早上 8 点触发工作流程。
- HTTP Request 节点 (ID: 2): 发送 HTTP 请求获取 RSS 源的数据。
- Function 节点 (ID: 3): 使用 JavaScript 代码解析 RSS XML 数据并提取新闻标题。
- Email 节点 (ID: 4): 将提取的新闻标题发送到你的邮箱。