Skip to content

Code 节点中的项目链接#

利用 n8n 的条目链接功能可以访问当前条目之前的条目数据。这在配合使用 Code 节点时尤为重要。大多数节点都会将每个输出条目与输入条目建立链接,从而形成一条可回溯访问先前条目的链条。如需深入了解这一概念,请参阅条目链接概念。本文档重点介绍实际使用示例。

在使用 Code 节点时,若希望后续工作流中能使用 $("<节点名称>").item 语法,某些场景下需要手动提供条目链接信息。这些场景仅适用于存在多个输入条目的情况,n8n 会自动处理单个条目的链接。

这些场景包括:

  • 添加新条目:新增条目不会自动与任何输入建立链接
  • 返回新条目
  • 需要手动控制条目链接的情况

其他场景由n8n 的自动条目链接功能自动处理。

要控制条目链接,可在返回数据时设置 pairedItem 属性。例如,以下代码展示如何链接到索引为 0 的输入条目:

1
2
3
4
5
6
7
8
9
[
	{
		"json": {
			. . . 
		},
		// 生成此输出条目的输入条目索引
		"pairedItem": 0
	}
]

pairedItem 使用示例#

以下输入数据:

 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;

newItems 是一个不包含 pairedItem 的条目数组。这意味着无法从这些新条目回溯到生成它们的原始条目。

添加 pairedItem 对象:

 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;

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