← Backn8n 课程

模块三:n8n 界面概览及功能

n8n 界面介绍和核心功能讲解:深入了解 n8n 的界面布局和核心功能。

3.1 n8n UI 界面概览

  • 一键配置中文界面
    • 浏览器翻译:Chrome 选择“翻译为中文(简体)”。
    • 沉浸式翻译插件:https://immersivetranslate.com/zh-Hans

3.1.1 首页仪表盘 (Dashboard)

  • Overview(概览统计):默认最近 7 天数据。
    • Prod. executions:已激活工作流成功运行次数。
    • Failed prod. executions:已激活工作流失败次数。
    • Failure rate:失败率,核心健康指标。
    • Run time (avg.):平均运行时间,过长需优化。
  • Create Workflow:醒目的创建按钮,直接进入空白画布。
  • Workflows:工作台,创建/删除/搜索/组织工作流。
  • Credentials:安全的凭据保险箱,API/OAuth 加密存储,下拉引用。
  • Executions:执行记录与调试,查看每次运行的输入输出。

3.1.2 编辑器界面 (Editor)

  • 中央画布 (Canvas):可视化构建区域,点击 “+” 添加节点并连接。
  • Execute Workflow:手动运行/测试当前工作流,便于调试。
  • Active:总开关,激活后触发器才监听事件。
  • Save:保存所有修改。
  • +(添加节点):添加触发器或动作的主要入口。

3.2 n8n 工作流运作的核心概念

3.2.1 工作流 (Workflow)

  • 自动化任务的集合:1 个触发器 + 若干动作节点。

3.2.2 连接器 (Connection)

  • 连接节点的数据“线”,决定数据流向(上游输出 → 下游输入)。

3.2.3 节点 (Node)

  • 工作流的基本单元,分触发器与动作。
    • 触发器 (Trigger):决定“何时”执行,且每个工作流仅一个激活触发器。
      • 示例:Schedule 定时、Webhook 接收 POST、Gmail Trigger 收件。
    • 行动器/动作 (Action):决定“做什么”。
      • 示例:Google Sheets 读写表格;OpenAI 提问;HTTP Request 调用任意 API。

3.2.4 数据流

  • 数据如河流,从触发器开始,流经各节点被处理再向下传递,下游可访问上游所有输出。

3.2.5 节点生命周期

  • Input → Processing → Output。
    • Input:接收上游数据。
    • Processing:按节点配置处理(如 Set 拼接字段)。
    • Output:输出处理结果给下游。

3.2.6 工作流执行方式

  • 同步 vs 异步:Webhook 可同步返回响应,同时后台继续异步任务。
  • 串行 vs 并行:默认对数组逐条串行;可用子工作流等方式批量并行提高效率。

3.3 理解 n8n 的数据结构

3.3.1 理解 JSON:这是理解 n8n 数据流动的关键

  • 在 n8n 中,所有数据都以 JSON (JavaScript Object Notation) 的格式在节点之间传递。请将下面这个结构刻在脑海里,这是理解一切数据操作的基础。
  • 一个典型的 n8n 数据项 (Item) 结构如下:
JSON 示例复制后粘贴
{
"json": {
  "field1": "value1",
  "customer": {
    "name": "Alice",
    "email": "alice@example.com"
  },
  "products": [
    { "id": "A1", "price": 100 },
    { "id": "B2", "price": 200 }
  ]
},
"binary": {
  // 用于存储文件等二进制数据
}
}
  • 核心概念:
    • 对象 ({}):包含“键: 值”配对,例如 customer
    • 数组 ([]):有序列表,例如 products 是数组。
    • 路径:访问数据的地址。json.customer.name 得到 “Alice”;json.products[1].price 得到第二个商品的价格(数组从 0 开始)。

3.3.2 理解表达式(Expressions)

  • 作用:让节点动态读取上游数据。语法总是 {{ ... }}
  • 基础用法 ($json):
    • 语法:{{ $json.some_key }}
    • 含义:指向上一个节点输出的 json。例如上游输出 {"name":"Alice"},则 {{ $json.name }} 得到 “Alice”。
  • 进阶用法 ($node):
    • 语法:{{ $('节点名称').item.json.some_key }}
    • 含义:跨节点精确取数,不限于紧邻上游。
    • 示例:{{ $('Read From Sheet').item.json.name }} 直接抓取名为 “Read From Sheet” 的节点输出。

3.3.3 数据处理和清洗方法:Code 节点

  • 当简单的“提取”无法满足需求,你需要对数据进行解析、转换、重组时,就可以“代码节点”对数据进行结构化加工。
  • 面临的问题 (Why):在 AI 工作流中,我们经常要求 AI 输出 JSON 格式的数据。但 AI 模型有时生成的数据往往并不是标准化的纯净 JSON 字符串,而可能是被文字或标记包裹的内容,如下案例:
{   "Title": "这是一个标题",   "Summary": "这是一个摘要" }

这种带有前后缀的字符串,n8n 的后续节点是无法直接识别的。我们需要一个“数据处理和净化”过程将其转化为标准化数据格式。

  • 解决方案 (How):Code 节点是处理数据结构化问题的最佳方式之一。
Code 节点示例复制后粘贴
// 1. 获取输入:从上一个 AI 节点获取可能不纯的输出字符串
// $json.output 会读取名为 'output' 的字段
const llmOutput = $json.output;

// 2. 净化数据:用正则找出最外层 { ... }
const jsonMatch = llmOutput.match(/{.*}/s);
if (!jsonMatch || jsonMatch.length === 0) {
throw new Error("无法在输入中找到有效的 JSON 字符串。");
}

const cleanJsonString = jsonMatch[0];
let parsedData;

// 3. 核心转换:把字符串 JSON 变成对象
try {
parsedData = JSON.parse(cleanJsonString);
} catch (error) {
throw new Error(`JSON 解析失败: ${error.message}.`);
}

// 4. 输出结果:提供结构化数据给下游节点
return {
Title: parsedData.Title,
Summary: parsedData.Summary,
CoverImagePrompt: parsedData.CoverImagePrompt
};

登录并付费后可查看完整内容

已付费用户请先登录;未付费用户完成付款后立即解锁全部课程。

登录继续