项目链接错误#
在 n8n 中,您可以引用来自任何先前节点的数据。这不必是紧邻的前一个节点:可以是工作流链中的任何先前节点。当引用更早的节点时,您需要使用表达式语法 $(node_name).item
。
不同项目的线程图示。由于项目链接的存在,您可以使用 $('Get famous movie actors').item
获取每部电影的演员信息。
由于前一个节点可能包含多个项目,n8n 需要知道使用哪一个。当使用 .item
时,n8n 会在后台自动处理这个问题。关于其工作原理的详细信息,请参阅项目链接概念。
当信息缺失时,.item
会失败。为了确定使用哪个项目,n8n 会为每个项目维护一个贯穿工作流节点的线程。对于给定的项目,这个线程告诉 n8n 是先前哪些节点生成了它。为了在给定的先前节点中找到匹配的项目,n8n 会沿着这个线程回溯,直到到达目标节点。
当使用 .item
时,n8n 会在以下情况下显示错误:
- 线程中断
- 线程指向先前节点中的多个项目(因为不清楚应该使用哪一个)
要解决这些错误,您可以避免使用 .item
,或者修复根本原因。
您可以通过使用 .first()
、.last()
或 .all()[index]
来避免 .item
。这些方法要求您知道目标项目在目标节点输出项目中的位置。关于这些方法的更多细节,请参阅内置方法和变量 | 其他节点的输出。
修复根本原因的具体方法取决于确切的错误类型。
修复"表达式缺少前一节点信息"错误#
当您看到以下错误信息时:
错误:表达式中缺少前一节点信息
表示节点链中有一个节点没有返回配对信息。解决方案取决于前一节点的类型:
修复"表达式存在多个匹配项"错误#
错误信息如下:
错误:表达式存在多个匹配项
有时n8n会使用多个项来创建单个项。例如Summarize(汇总)、Aggregate(聚合)和Merge(合并)节点。这些节点可以组合来自多个项的信息。
当您使用.item
且存在多个可能匹配项时,n8n不知道应该使用哪一个。解决方法如下:
- 改用
.first()
、.last()
或.all()[index]
。关于这些方法的详细信息,请参考内置方法和变量 | 其他节点的输出。 - 引用包含相同信息但没有多个匹配项的其他节点。