
在实际项目中,很多团队把 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 当成代码的可视化层,才不会在后期维护时迷失在千行脚本里。」——资深自动化架构师
参与讨论
这个“胶水”说法太形象了,之前搞集成全靠手动脚本,头都大了。