Skip to content

代码节点中的项目链接

使用 n8n 的项目链接功能可以访问当前项目之前的项目中的数据。使用代码节点时,它也会产生影响。大多数节点会将每个输出项目链接到一个输入项目。这会创建一个项目链,您可以沿着该链返回以访问先前的项目。有关此主题的更深入的概念概述,请参阅项目链接概念。本文档重点介绍实际使用示例。

使用代码节点时,某些情况下,如果您希望在后续工作流中使用,则需要手动提供项目链接信息。所有这些情况仅适用于有多个传入项目的情况。n8n 会自动处理单个项目的项目链接。

这些场景是当您:

  • 添加新项目:新项目不链接到任何输入。
  • 退回新物品。
  • 想要手动控制项目链接。

n8n 的自动项目链接处理其他场景。

要控制项目链接,请在返回数据时设置。例如,要链接到索引 0 处的项目:

1
2
3
4
5
6
7
8
9
[
	{
		"json": {
			. . . 
		},
		// The index of the input item that generated this output item
		"pairedItem": 0
	}
]

使用示例

获取以下输入数据:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[
  {
    "id": "23423532",
    "name": "Jay Gatsby"
  },
  {
    "id": "23423533",
    "name": "José Arcadio Buendía"
  },
  {
    "id": "23423534",
    "name": "Max Sendak"
  },
  {
    "id": "23423535",
    "name": "Zaphod Beeblebrox"
  },
  {
    "id": "23423536",
    "name": "Edmund Pevensie"
  }
]

并使用它来生成新项目,仅包含名称以及新的数据:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
newItems = [];
for(let i=0; i<items.length; i++){
  newItems.push(
    {
    "json":
      {
        "name": items[i].json.name,
				"aBrandNewField": "New data for item " + i
      }
    }
  )
}

return newItems;

是一个没有 的项数组。这意味着无法从这些项追溯到用于生成它们的项。

添加对象:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
newItems = [];
for(let i=0; i<items.length; i++){
  newItems.push(
    {
      "json":
        {
          "name": items[i].json.name,
					"aBrandNewField": "New data for item " + i
        },
      "pairedItem": i
    }    
  )
}
return newItems;

现在每个新项目都链接到用于创建它的项目。