跳到主要内容

项目链接错误#

在 n8n 中,您可以引用任何先前节点的数据。这不必是紧邻的前一个节点:可以是工作流中任意先前的节点。当引用更早的节点时,需使用表达式语法 $(节点名称).item

显示多个项目通过工作流反向链接的线程示意图

不同项目的线程示意图。通过项目链接,您可以使用 $('获取著名电影演员').item 获取每部电影的演员信息。

由于前序节点可能包含多个项目,n8n 需要确定使用哪一个。当使用 .item 时,n8n 会在后台自动处理匹配逻辑。具体工作原理请参阅项目链接概念

当信息缺失时,.item 会执行失败。为了确定使用哪个项目,n8n 会为每个项目维护一条贯穿工作流节点的反向线程。对于给定项目,该线程能告知 n8n 前序节点中的哪些项目生成了当前项目。为了在指定前序节点中找到匹配项,n8n 会沿该线程反向追溯直至目标节点。

在以下情况下使用 .item 会触发错误:

  • 线程链断裂
  • 线程指向前序节点中存在多个匹配项(无法确定使用哪一个)

解决这些错误的方法包括:避免使用 .item,或修复根本原因。

可通过 .first().last().all()[index] 替代 .item。这些方法需要您明确目标节点输出项目中目标项的位置。具体用法请参阅内置方法和变量 | 其他节点输出

根本原因的修复方案取决于具体错误类型。

修复“表达式缺少前序节点信息”错误#

若出现以下错误提示:

错误:表达式缺少前序节点信息

说明工作流链中存在未返回配对信息的节点。解决方案根据前序节点类型有所不同:

修复“表达式存在多个匹配项”错误#

错误提示如下:

错误:表达式存在多个匹配项

有时 n8n 会使用多个项目来创建单个项目(例如汇总节点、聚合节点和合并节点),这类节点会合并多个项目的信息。

当使用 .item 且存在多个匹配项时,n8n 无法确定使用哪一个。解决方案包括: