跳到主要内容

代码节点中的条目链接#

通过n8n的条目链接功能,可访问当前条目之前条目的数据。该功能在使用代码节点时尤为重要。多数节点会将每个输出条目与输入条目建立链接,从而形成可回溯访问历史条目的链条。关于此主题的概念性概述,请参阅条目链接概念。本文档重点介绍实际应用示例。

使用代码节点时,若需在后续工作流中使用$("<节点名称>").item,以下场景需手动配置条目链接信息(仅适用于多输入条目的情况,n8n会自动处理单一条目的链接):

  • 添加新条目:新增条目未与任何输入建立链接
  • 返回新条目
  • 需手动控制条目链接

其余场景由n8n自动条目链接处理。

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

[
{
"json": {
. . .
},
// The index of the input item that generated this output item
"pairedItem": 0
}
]

pairedItem 使用示例#

以下为输入数据示例:

[
{
"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"
}
]

并利用它生成仅包含名称及一项新数据的新条目:

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 对象:

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;

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