匠人学院 JR Academy学AI来匠人
匠人学院 JR Academy学AI来匠人

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png
EN

关于公司

关于我们元宇宙课堂新闻资讯匠人工作成为导师匠人导师联系我们匠人商店J3.Club

匠人资源

工作内推匠人活动1对1私教行业白皮书线上学习平台面试中心分享面试经验Internship会员中心

AI 工具

AI 工具箱考证匠 Cert Master求职匠 Job Hunter牛小匠 UniMate AI

AI 学习方向

全部学习方向AI EngineerContext EngineeringVibe CodingPrompt MasterAI BuilderAI 产品经理Python 入门

AI 应用提效

AI 办公提效AI 数据分析AI 财务AI 内容创作AI 视觉创作前端开发Hermes AgentOpenClaw 本地智能体

大学资源

墨尔本大学昆士兰大学新南威尔士大学悉尼大学莫那什大学阿德莱德大学RMITQUTUTS

少儿 AI 教育

Airbotix 少儿 AI 编程澳洲家长实用资料库NAPLAN 成绩单怎么看My School 学校数据指南悉尼私校学费 2026少儿编程课程与训练营

移民服务

澳洲移民技术移民189/190/491雇主担保482/186/494投资移民188/888英国移民美国移民加拿大移民

企业合作

P3职业孵化器Enterprise (EN)企业培训实习合作招聘合作申请合作

求职代理

岗位代投职位监控LinkedIn代运营LinkedIn人脉代加了解P3项目

匠人支持

FAQsTerms & ConditionsPrivacy PolicyCancellation & Refund PolicySite map

Top Categories

Web全栈班DevOps项目班数据工程全栈班数据分析项目班编程入门班Business Analyst实习算法集训营

求职就业

BA和产品经理实习数据科学实习数据分析实习Marketing实习简历修改面试指导导师指导VIP

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

联系方式

hello@jiangren.com.au0421-672-555

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2026 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572

首页/资源中心/文章详情
JR Academy · Blog职业洞察

n8n 工作流自动化实战手册 — 进阶技巧与常见问题

Code Node 深度使用、错误处理、生产部署要点,以及 FAQ

发布日期2026-08-24
阅读时长2 分钟
作者

快速导航

  • Code Node:写真实代码
  • 处理复杂数据转换
  • 使用 npm 包
  • Python Code Node
  • 错误处理
  • 方式一:Error Trigger 工作流
  • 方式二:节点级别的 Try/Catch
  • 方式三:Code Node 里 try-catch
  • Webhook 安全配置
  • 生产部署要点
  • 环境变量管理
  • 定期备份
  • 性能优化
  • 常见问题(FAQ)
  • 学习资源

n8n 管理面板

掌握了基础节点之后,这些技巧能让你的工作流更健壮、更高效。

Code Node:写真实代码

n8n 的 Code Node 是它区别于 Zapier 最大的武器。支持完整的 JavaScript(Node.js 18)和 Python,能 require npm 包。

处理复杂数据转换

// 场景:把嵌套的 API 响应铺平为二维表格
const input = $input.first().json;
const users = input.data.users;

return users.flatMap(user => 
  user.orders.map(order => ({
    json: {
      userId: user.id,
      userName: user.name,
      orderId: order.id,
      amount: order.amount,
      date: new Date(order.createdAt).toLocaleDateString('zh-CN')
    }
  }))
);

使用 npm 包

在 Code Node 里可以直接 require 已安装的包(n8n 内置了常用库):

// 日期处理
const { DateTime } = require('luxon');
const formatted = DateTime.now().setZone('Asia/Shanghai').toFormat('yyyy-MM-dd HH:mm');

// 加密
const crypto = require('crypto');
const hash = crypto.createHmac('sha256', 'secret').update($json.data).digest('hex');

// JSON Schema 校验
const Ajv = require('ajv');
const ajv = new Ajv();
const valid = ajv.validate({ type: 'object', required: ['email'] }, $json);

Python Code Node

# n8n 也支持 Python(需要服务器安装 Python)
import json
from datetime import datetime

items = _input.all()
results = []

for item in items:
    data = item.json
    results.append({
        'json': {
            'processed_at': datetime.now().isoformat(),
            'original': data,
            'word_count': len(data.get('content', '').split())
        }
    })

return results

错误处理

方式一:Error Trigger 工作流

创建一个独立的"错误处理工作流",所有工作流的报错都汇集到这里:

  1. 新建 workflow,添加 Error Trigger 节点(而不是普通 trigger)
  2. 连接 Slack 节点,发送报警通知
  3. 在每个生产工作流的 Settings 里,设置 Error Workflow 指向这个工作流
Error Trigger
    ↓
Slack: "⚠️ 工作流 {{ $json.workflow.name }} 报错
        错误: {{ $json.execution.error.message }}
        时间: {{ $now.format('YYYY-MM-DD HH:mm') }}
        执行ID: {{ $json.execution.id }}"

方式二:节点级别的 Try/Catch

在 Settings 里开启每个节点的 Continue on Fail,然后用 IF 节点检查是否有错误:

HTTP Request(Continue on Fail: ON)
    ↓
IF: {{ $json.error }} 存在
  ├── True → 记录错误到数据库
  └── False → 继续正常流程

方式三:Code Node 里 try-catch

try {
  const response = await fetch($json.url);
  const data = await response.json();
  return [{ json: { success: true, data } }];
} catch (error) {
  return [{ json: { success: false, error: error.message } }];
}

Webhook 安全配置

生产环境的 Webhook 要做鉴权,防止被随意调用。

方式一:Header 鉴权

在 Webhook 节点开启 Header Auth:

Authentication: Header Auth
Name: X-Webhook-Secret
Value: your-secret-token-here

调用方需要在请求 Header 里加 X-Webhook-Secret: your-secret-token-here,否则 403。

方式二:验证 GitHub/Stripe 的签名

// Code 节点:验证 GitHub Webhook 签名
const crypto = require('crypto');
const signature = $json.headers['x-hub-signature-256'];
const payload = JSON.stringify($json.body);
const secret = 'your-github-webhook-secret';

const expected = 'sha256=' + crypto
  .createHmac('sha256', secret)
  .update(payload)
  .digest('hex');

if (signature !== expected) {
  throw new Error('Invalid signature — 请求被拒绝');
}

return $input.all(); // 验证通过,继续流程

生产部署要点

环境变量管理

敏感配置通过环境变量注入,不要硬编码在工作流里:

# docker-compose.yml 的 environment 部分
- N8N_ENCRYPTION_KEY=your-32-char-encryption-key  # 必须设置
- DB_TYPE=postgresdb                               # 使用 PG 存储工作流
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=secure_password
- WEBHOOK_URL=https://n8n.yourcompany.com

在工作流里引用环境变量:

{{ $env.MY_API_KEY }}

定期备份

# 备份 n8n 数据(包含所有工作流、credentials、执行历史)
docker exec n8n n8n export:workflow --all --output=/tmp/workflows.json
docker exec n8n n8n export:credentials --all --output=/tmp/credentials.json
docker cp n8n:/tmp/workflows.json ./backups/

性能优化

  • 执行历史保留天数:EXECUTIONS_DATA_MAX_AGE=30(默认保留所有,数据库会很大)
  • 并发执行数:N8N_CONCURRENCY_PRODUCTION_LIMIT=20
  • Queue Mode:高并发场景用 Redis Queue 模式,支持多 worker 水平扩展

常见问题(FAQ)

Q: n8n 支持多少并发执行?

默认单进程模式没有硬限制,取决于服务器性能。生产推荐用 Queue Mode(Redis + 多 worker),可以无限水平扩展。

Q: Webhook 在本地跑,外部服务怎么访问?

用 ngrok 或 Cloudflare Tunnel 把本地端口暴露到公网:

ngrok http 5678
# 得到类似 https://abc123.ngrok.io 的地址
# 在 n8n 里设置 WEBHOOK_URL=https://abc123.ngrok.io

Q: Credential 怎么在多个 workflow 里共享?

Credential 是全局的,创建一次后所有 workflow 都能选择使用,不需要重复填写。Credential 数据加密存储(用 N8N_ENCRYPTION_KEY 加密)。

Q: 工作流的版本控制怎么做?

用 n8n 内置的 Source Control 功能(Git 集成),Settings → Source Control → 连接 Git 仓库,可以把工作流定义 push 到 Git,实现版本控制和团队协作。

Q: 如何调试 Expression 表达式?

在节点配置面板,Expression 输入框旁边有一个小眼睛图标,点击可以实时预览该表达式在当前数据下的计算结果,不需要跑整个工作流。

Q: n8n 能替代自建微服务吗?

对于内部工具和轻量级集成完全可以。生产级的高吞吐量场景(每秒数千请求)还是需要专用的微服务,n8n 更适合运营自动化、数据同步、通知推送这类场景。


学习资源

资源 链接
官方文档 docs.n8n.io
工作流模板库(900+) n8n.io/workflows
社区论坛 community.n8n.io
AI 工作流专区 n8n.io/workflows/categories/ai
Level 1 官方课程 docs.n8n.io/courses/level-one
作者
一键分享或复制链接
Lightman Wang
Reviewer: Lightman Wang

Founder of JR Academy

查看该作者的更多文章 →
← 上一篇n8n 工作流自动化实战手册 — AI Agent 实战:用 n8n 构建智能工作流下一篇 →n8n 工作流自动化实战手册 — HTTP Request 节点与 API 集成实战

相关文章推荐

最近关心AI Engineer的,真的要盯住澳洲🆓AI大会

2026-09-17

悉大COMP5318学什么?一篇理清核心知识点

2026-09-17

🇦🇺好消息!悉大留子可以🆓试用GPTEdu

2026-09-15

所有澳留快查❗你的学费也能退税!

2026-09-14

Claude直接送开发者6个月Max额度❗

2026-09-09

OpenAI开发者大会❗人在澳洲也能看

2026-09-08
查看全部文章 →
JR Academy
全球华人学习 AI 第一站
✓15000+ 学员
✓50+ 课程
✓AI 驱动学习平台
训练营免费资源AI学习职业辅导
精选推荐
AI 职业影响地图
测测你的职业风险等级,查看转型路径与学习方向
热门工具
AI & 数据训练营
系统化课程 + 真实项目实战,快速提升竞争力
热门课程
1v1 就业辅导
资深导师一对一指导,简历优化 + 面试准备
就业保障
企业内训定制
AI 技能培训方案,助力团队升级
企业服务
热门标签
Vibe CodingAI 编程CursorClaude求职攻略Prompt前端开发后端开发
订阅更新

获取最新 AI 学习资源、技术教程和求职攻略,直接送达邮箱。

我们尊重您的隐私,不会发送垃圾邮件