菜单

参数输入和资源定位器

相关源文件

目的与范围

本文档描述了n8n用户界面中的参数输入系统和资源定位器组件。这些是节点详情视图(NDV)的核心元素,使用户能够配置节点参数并从外部服务中选择资源。

有关节点详情视图本身的更多信息,请参阅节点详情视图(NDV)

概述

参数输入和资源定位器系统在n8n的工作流配置UI和节点执行之间提供了一个接口,使用户无需离开n8n界面即可配置节点选项和浏览远程资源(如文件、工作表、存储库)。

来源: cypress/e2e/26-resource-locator.cy.ts1-6 cypress/e2e/26-resource-locator.cy.ts17-30

参数输入系统

参数输入系统提供了各种UI组件用于配置节点参数。这些组件会根据不同的数据类型和需求进行适应,为每种参数类型提供合适的界面。

参数输入类型和实现

来源: cypress/fixtures/Test_workflow_3.json23-63

参数数据类型和配置

参数输入根据节点要求处理各种数据类型和配置

输入类型数据类型组件用途
文本字符串文本输入 (TextInput)节点名称、文本参数
数字数字数字输入 (NumberInput)计数、限制、阈值
布尔值布尔值切换按钮 (ToggleButton)启用/禁用功能
选项枚举(Enum)下拉选择 (DropdownSelect)从预定义选项中选择
日期时间 (DateTime)日期日期时间选择器 (DateTimePicker)调度时间、日期过滤器
代码对象/数组 (Object/Array)代码编辑器 (CodeEditor)JSON、SQL、HTML内容
表达式任意表达式编辑器 (ExpressionEditor)使用表达式的动态值
资源字符串/对象资源定位器 (ResourceLocator)外部资源选择

每个参数都在节点的描述中定义,具有以下属性:

  • name:参数标识符
  • displayName:用户友好的标签
  • type:数据类型
  • default:默认值
  • required:参数是否必需
  • options:下拉选择的可用选项

来源: cypress/fixtures/Test_workflow_3.json23-63

表达式支持

参数输入支持n8n表达式,用于基于工作流数据的动态配置

表达式允许参数:

  • 使用$json语法引用上游节点的数据
  • 使用内置函数和运算符
  • 在运行时动态计算值
  • 在格式之间转换数据

来源: cypress/fixtures/Test_workflow_3.json23-63

验证和错误处理

参数输入包含验证逻辑,以确保配置正确

  1. 类型验证 — 确保值符合预期数据类型
  2. 必填字段验证 — 检查必填参数是否有值
  3. 格式验证 — 验证值是否遵循预期格式
  4. 表达式验证 — 验证表达式语法和引用

验证失败时,会显示适当的错误消息以指导用户。

来源: cypress/fixtures/Test_workflow_3.json23-63

参数依赖项

参数可以依赖于其他参数,从而创建层级关系

  1. 值依赖项 — 参数的可用选项取决于另一参数的值
  2. 可见性依赖项 — 当另一个参数具有特定值时,参数才显示
  3. 验证依赖项 — 参数的验证规则取决于另一个参数

当一个被其他参数依赖的参数发生更改时,依赖的参数会被重置或相应更新。

来源: cypress/e2e/26-resource-locator.cy.ts74-81

资源定位器组件

资源定位器组件(RLC)是一个专门的参数输入,它帮助用户直接在n8n界面中浏览和选择第三方服务的外部资源(如Google Drive文档、GitHub存储库等)。

架构与实现

来源: cypress/e2e/26-resource-locator.cy.ts17-30 cypress/e2e/26-resource-locator.cy.ts74-81

操作模式

资源定位器组件支持不同的操作模式,允许灵活地选择资源

  1. 列表模式MODE_SELECTOR_LIST)— 从外部服务检索并显示可用资源列表以供选择
  2. 手动输入模式 — 允许直接输入资源标识符
  3. 表达式模式 — 支持n8n表达式进行动态资源选择

模式通过组件内的下拉菜单“模式选择器”进行选择。

来源: cypress/e2e/26-resource-locator.cy.ts10-11 cypress/e2e/26-resource-locator.cy.ts22-29

凭据集成

资源定位器与凭据系统紧密耦合,因为它需要有效的凭据才能从外部服务获取资源。

来源: cypress/e2e/26-resource-locator.cy.ts8-9 cypress/e2e/26-resource-locator.cy.ts32-48 cypress/e2e/26-resource-locator.cy.ts50-65 cypress/e2e/26-resource-locator.cy.ts67-72

错误处理

资源定位器为不同场景提供清晰的错误消息

  1. 当凭据未设置时:NO_CREDENTIALS_MESSAGE(“添加您的凭据”)
  2. 当凭据无效时:INVALID_CREDENTIALS_MESSAGE(“请检查您的凭据”)
  3. 当需要其他过滤器但未提供时

错误消息通过resourceLocatorErrorMessage组件显示,指导用户解决配置问题。

来源: cypress/e2e/26-resource-locator.cy.ts8-9 cypress/e2e/26-resource-locator.cy.ts32-38 cypress/e2e/26-resource-locator.cy.ts50-65

字段间的依赖关系

资源定位器可以依赖于其他字段。当依赖字段更改时,资源定位器会重置以避免状态不一致。例如,在Google Sheets节点中,sheetName字段依赖于documentId字段——更改文档会重置工作表选择。

来源: cypress/e2e/26-resource-locator.cy.ts74-81

加载行为

与其他组件不同,资源定位器即使在其他参数存在错误时也能独立加载选项。这使其在部分配置的节点中具有弹性。

例如,当节点的一个字段中存在无效表达式时,资源定位器仍然可以获取并显示其字段的选项,允许用户在不先修复所有错误的情况下配置节点的部分内容。

来源: cypress/e2e/26-resource-locator.cy.ts83-106

技术实现

资源定位器和参数输入系统是n8n UI的核心组件,它们作为Vue.js组件实现,与n8n后端交互以获取资源、验证输入并将配置存储为工作流数据结构的一部分。

来源: cypress/e2e/26-resource-locator.cy.ts1-6

这些组件构成了n8n用户界面的关键部分,能够实现直观的工作流配置,同时抽象化了外部服务集成的复杂性。