项目链接错误#
在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]。有关这些方法的更多详情,请参阅内置方法和变量 | 其他节点的输出。 - 引用另一个包含相同信息但没有多个匹配项的节点。
