《Code 节点实战:用 JavaScript 接管自动化系统的核心逻辑(企业级实战)》

难度:进阶 → 高阶 | 标签:Code | 类型:逻辑核心 / 数据中台 / AI 自动化中枢

如果说:

  • ✅ Set 是"数据构造器"

  • ✅ Item Lists 是"批量调度器"

  • ✅ IF / Switch 是"逻辑分流器"

那么:

Code 节点 = n8n 自动化系统的"CPU + 操作系统"

你在企业级项目中,一旦遇到这些需求:

  • 复杂业务规则计算

  • 多字段联动逻辑

  • 动态结构转换

  • 风控判断

  • AI Prompt 组装

  • RAG 查询参数构建

  • 金额、税费、分润计算

100% 都绕不开 Code 节点。


一、Code 节点的官方级本质定义

Code 节点的唯一职责:

👉 在 n8n 工作流中直接执行 JavaScript,对数据进行"无限制逻辑处理"

它与其它节点的根本区别是:

对比项 普通节点 Code 节点
功能范围 功能被限制 无限 JS 能力
数据结构 受 UI 约束 完全自由
业务规则 靠参数拼装 由你写代码决定
AI / RAG 只能拼参数 可写完整策略

✅ 在企业架构中,它的真实身份是:

  • 业务规则引擎

  • 风控计算引擎

  • 数据清洗中台

  • AI Prompt 调度中心

  • RAG 查询构建器


二、Code 节点 API 级运行机制(企业必懂)

✅ 1️⃣ 输入数据结构($input)

Code 节点默认可访问:

复制代码
$input.all()     // 获取所有 item
$input.first()   // 获取第一条数据
$json            // 当前 item 的 JSON

每一条进入 Code 的数据,本质结构都是:

复制代码
{
  "json": { ... },
  "binary": { ... }
}

✅ 你写的所有逻辑,本质都是在:

👉 对这个 json 进行"增、删、改、算、重组"


✅ 2️⃣ 输出规则(return 格式是生死线)

❗ Code 节点的唯一输出规则:

复制代码
return [
  { json: { ... } },
  { json: { ... } }
]

✅ 你必须 永远返回数组结构,否则:

  • ❌ 下游节点直接报错

  • ❌ 数据流中断

  • ❌ 子流程无法接管


✅ 3️⃣ 可用能力边界(企业级理解)

✅ 允许:

  • 纯 JavaScript 运算

  • JSON 结构重组

  • for/while/map/reduce

  • 正则表达式

  • 时间计算

  • 金额计算

  • AI Prompt 拼接

❌ 不允许:

  • 直接访问外部网络

  • 安装 npm 包

  • 访问服务器文件系统


三、企业级标准 Mock 测试数据(业务计算通用模型)

以下是 模拟企业项目里最典型的一类输入结构

复制代码
{
  "user_id": "U001",
  "type": "vip",
  "order_amount": 1200,
  "coupon": 100,
  "region": "CN"
}

你的 Code 节点一般要做的不是:

"改字段"

而是:

"基于规则,算出一堆新业务字段"


四、企业最核心的 5 类 Code 节点实战模型


✅ 模型一:业务规则计算(订单 / 分润 / 税费)

复制代码
const price = $json.order_amount;
const coupon = $json.coupon;

const payAmount = price - coupon;
const tax = payAmount * 0.06;
const finalAmount = payAmount + tax;

return [
  {
    json: {
      ...$json,
      pay_amount: payAmount,
      tax,
      final_amount: finalAmount
    }
  }
];

✅ 用于:

  • 电商

  • SaaS

  • 分销

  • 财务系统


✅ 模型二:风控 / 风险拦截

复制代码
let riskLevel = "low";

if ($json.order_amount > 5000) {
  riskLevel = "high";
}

return [
  {
    json: {
      ...$json,
      risk_level: riskLevel
    }
  }
];

✅ 后面直接接:

  • IF

  • 人工审核

  • 冻结订单


✅ 模型三:AI Prompt 动态构造(RAG 标配)

复制代码
const question = $json.question;
const userType = $json.type;

const prompt = `
你是企业客服AI,
用户类型:${userType}
用户问题:${question}
请给出专业、合规、简洁的回答:
`;

return [
  {
    json: {
      ...$json,
      prompt
    }
  }
];

✅ 这一步是:

所有 AI 自动化系统的"灵魂中枢"


✅ 模型四:数据清洗 & 结构标准化

复制代码
return [
  {
    json: {
      uid: String($json.user_id),
      amount: Number($json.order_amount),
      region: ($json.region || "").toUpperCase()
    }
  }
];

✅ 为:

  • 数据库入库

  • BI 报表

  • 向量入库

  • 搜索引擎

做准备。


✅ 模型五:RAG 查询参数构建(企业知识库)

复制代码
const question = $json.question;

return [
  {
    json: {
      query: question,
      top_k: 5,
      score_threshold: 0.75
    }
  }
];

✅ 这一段后面直接接:

  • 向量数据库

  • Embedding 查询

  • 知识召回


五、✅ 可直接导入 n8n 的企业级 Demo JSON

👉 功能:

Set 构造订单数据 → Code 自动计算 → 输出最终金额

复制代码
{
  "nodes": [
    {
      "id": "Set-Mock",
      "name": "Mock 订单数据",
      "type": "n8n-nodes-base.set",
      "typeVersion": 2,
      "position": [200, 300],
      "parameters": {
        "keepOnlySet": true,
        "values": {
          "json": [
            { "name": "user_id", "value": "U001" },
            { "name": "order_amount", "value": 1200 },
            { "name": "coupon", "value": 100 }
          ]
        }
      }
    },
    {
      "id": "Code-Core",
      "name": "计算应付金额",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [500, 300],
      "parameters": {
        "language": "javascript",
        "jsCode": "const price = $json.order_amount;\nconst coupon = $json.coupon;\n\nconst payAmount = price - coupon;\nconst tax = payAmount * 0.06;\nconst finalAmount = payAmount + tax;\n\nreturn [\n  {\n    json: {\n      ...$json,\n      pay_amount: payAmount,\n      tax,\n      final_amount: finalAmount\n    }\n  }\n];"
      }
    }
  ],
  "connections": {
    "Mock 订单数据": {
      "main": [
        [
          {
            "node": "计算应付金额",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

✅ 你导入后会看到:

  • 原始金额 1200

  • 优惠 100

  • 税费 6%

  • 最终应付金额自动生成 ✅


六、企业级最佳实践(Code 节点 8 条铁律)

✅ 1️⃣ 所有复杂逻辑,一律进 Code,不要靠 UI 拼参数

✅ 2️⃣ 所有返回必须是数组结构

✅ 3️⃣ 禁止在 Code 里写"与业务无关的演示代码"

✅ 4️⃣ 所有金额、比例、阈值必须变量化

✅ 5️⃣ 所有 AI Prompt 必须由 Code 动态生成

✅ 6️⃣ Code 只负责"逻辑",不负责"通讯"

✅ 7️⃣ 高风险规则(风控/封禁)必须走 Code

✅ 8️⃣ 所有 Code 必须可复用、可复制、可模板化


七、新手最容易踩的 6 个"系统级大坑"

❌ return 不是数组 → 整个流程直接炸

❌ 在 Code 里乱改字段名 → 下游节点全挂

❌ 金额用字符串 → 财务系统全错

❌ 所有逻辑全堆一个 Code → 后期必崩

❌ Prompt 写死 → AI 无法规模化

❌ 风控逻辑不用 Code → 安全事故只是时间问题


八、你现在已经真正具备的"企业级能力"

完成本篇后,你已经真正具备:

✅ 企业级业务规则引擎能力

✅ AI Prompt 工程能力

✅ 自动化风控能力

✅ RAG 查询构建能力

✅ 数据中台处理能力

这意味着:

✅ 你已经不是在"玩 n8n",

✅ 而是在 "用 n8n 搭企业自动化操作系统"

相关推荐
谷粒.6 小时前
自动化测试覆盖率从30%到80%的演进历程:策略、挑战与未来展望
运维·网络·深度学习·架构·自动化·transformer·测试覆盖率
科普瑞传感仪器8 小时前
航空航天领域青睐:复杂曲面机器人抛光为何必须采用六维力控?
运维·人工智能·机器人·自动化·无人机
谷粒.9 小时前
让缺陷描述更有价值:测试报告编写规范的精髓
java·网络·python·单元测试·自动化·log4j
科士威传动9 小时前
滚珠导轨平行度安装的关键步骤
人工智能·科技·机器学习·自动化·制造
北京耐用通信19 小时前
电磁阀通讯频频“掉链”?耐达讯自动化Ethernet/IP转DeviceNet救场全行业!
人工智能·物联网·网络协议·安全·自动化·信息与通信
m_1368719 小时前
《n8n Item Lists 节点:数组操作全攻略(排序、过滤、分组、去重、合并)》
n8n
吃喝不愁霸王餐APP开发者1 天前
霸王餐API文档自动化:Spring REST Docs与Asciidoctor多模块聚合
数据库·spring·自动化
0思必得01 天前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
Deng8723473481 天前
自动化极验3点选验证码的识别与验证方案
运维·python·自动化