
在实际项目中,很多团队把 n8n 当成“胶水”,把分散的 API、数据库与内部系统无缝串联。把这套工具从概念搬到生产线,往往是从一个看似简单的「抓取邮件附件」任务开始,逐步演进成全链路的订单同步、库存预警以及营销自动化。
n8n 的工作流本质上是有向无环图(DAG),每个节点既是数据的生产者也是消费者。节点之间通过“表达式”传递上下文,表达式遵循 JavaScript 语法,但在运行时会被 n8n 的内部解析器包装为安全的 sandbox。理解这一点后,就能把「把 A 的返回值直接喂给 B」的想法落地为「在 B 的输入字段里写 {{ $json[“field”] }}」的形式。
函数节点是大多数高级需求的入口。比如在订单 webhook 场景里,常见的「同一 SKU 同时出现多个订单」需要先合并数量。下面的代码片段展示了如何把同一天的同 SKU 合并为一条记录,再交给后续的 ERP 调用。
// 合并同一天同 SKU 的订单
const orders = $json["orders"];
const map = {};
orders.forEach(o => {
const key = `${o.date}|${o.sku}`;
if (!map[key]) {
map[key] = { date: o.date, sku: o.sku, qty: 0 };
}
map[key].qty += Number(o.quantity);
});
return Object.values(map);
n8n 提供了内置的执行日志和错误捕获节点。实战中,建议在每个关键节点后插入「捕获错误」节点,把错误信息写入 Elasticsearch,配合 Kibana 仪表盘实时监控。这样即使某一次外部 API 超时,也能在几分钟内定位到是哪一步的输入参数异常。
「把 n8n 当成代码的可视化层,才不会在后期维护时迷失在千行脚本里。」——资深自动化架构师
参与讨论
表达式用{{ $json[“field”] }}这种写法,一开始总漏双引号,报错看得眼花
要是能把Google Sheet那步换成飞书多维表就好了,现在还得转格式
之前搞过类似的自动化,结果一个token过期整条链崩三天,心累
捕获错误写进Elasticsearch…公司没搭ELK栈,能不能用日志文件先顶着?
用了一周,最大的体会:可视化是方便了,但改起来也容易手滑删节点666
那个啥,有没人遇到过webhook收不到Shopify回调的?我这边偶尔丢数据
感觉还行,比写一堆crontab脚本干净多了
n8n这玩意儿看着简单,一上手发现得懂API、JSON、还带点编程,新手劝退?
Slack通知是真香,但我们采购老大嫌烦,非要改成企业微信…
求问MySQL定时查库存,间隔设多久比较合适?怕太频繁被封
同SKU合并那段代码救我狗命,终于不用在ERP里重复建单了
IMAP抓邮件附件这块试过,SSL配置坑了好久才通😭
函数节点写JS还得适应一阵,表达式那块刚开始真容易懵。
这个“胶水”说法太形象了,之前搞集成全靠手动脚本,头都大了。