跳到主要内容

引用前面的节点

在 n8n 中处理数据时,经常需要引用当前节点或工作流前面节点的信息。

常见引用方式 ​

最常用的数据访问方法包括:

  • $json:访问当前输入数据项的 JSON 数据
  • $('<node-name>').item.json:访问前面节点中关联数据项的 JSON 数据
  • $('<node-name>').item.binary:访问前面节点中关联数据项的二进制数据,例如文件和图片

其他引用方法 ​

以下方法可同时用于表达式和 Code 节点:

方法说明
$binary访问当前输入数据项的二进制数据
$input.item当前正在处理的输入数据项
$('<node-name>').first()获取指定节点的第一个数据项
$('<node-name>').last()获取指定节点的最后一个数据项
$('<node-name>').all()获取指定节点的所有数据项

当前节点输入 ​

用于处理当前节点输入的方法。部分方法和变量在 Code 节点中不可用。

信息

Python 支持

可以在 Code 节点中使用 Python,但表达式不支持 Python。

JavaScript
方法说明Code 节点中是否可用
$binary$input.item.binary 的简写,表示节点传入的二进制数据❌
$input.item当前节点正在处理的输入数据项。配对数据项和关联机制的更多信息,见数据项关联。✅
$input.all()当前节点的所有输入数据项。✅
$input.first()当前节点的第一个输入数据项。✅
$input.last()当前节点的最后一个输入数据项。✅
$input.params包含前一节点查询设置的对象,例如执行的操作、结果数量上限等。✅
$json$input.item.json 的简写,表示节点传入的 JSON 数据。数据项结构见数据结构。✅(逐项运行时)
$input.context.noItemsLeft布尔值,仅适用于 Loop Over Items 节点。提供节点运行状态,可用来判断节点是否仍在处理数据项。✅
Python
方法说明
_input.item当前节点正在处理的输入数据项。配对数据项和关联机制的更多信息,见数据项关联。
_input.all()当前节点的所有输入数据项。
_input.first()当前节点的第一个输入数据项。
_input.last()当前节点的最后一个输入数据项。
_input.params包含前一节点查询设置的对象,例如执行的操作、结果数量上限等。
_json_input.item.json 的简写,表示节点传入的 JSON 数据。数据项结构见数据结构。将 Mode(模式) 设为 Run Once for Each Item(为每个数据项运行一次) 时可用。
_input.context.noItemsLeft布尔值,仅适用于 Loop Over Items 节点。提供节点运行状态,可用来判断节点是否仍在处理数据项。

其他节点的输出 ​

用于处理其他节点输出的方法。部分方法和变量在 Code 节点中不可用。

方法说明Code 节点中是否可用
$("<node-name>").all(branchIndex?, runIndex?)返回指定节点的所有数据项。未提供 branchIndex 时,默认使用连接 node-name 与当前表达式或代码所在节点的输出。✅
$("<node-name>").first(branchIndex?, runIndex?)指定节点输出的第一个数据项。未提供 branchIndex 时,默认使用连接 node-name 与当前表达式或代码所在节点的输出。✅
$("<node-name>").last(branchIndex?, runIndex?)指定节点输出的最后一个数据项。未提供 branchIndex 时,默认使用连接 node-name 与当前表达式或代码所在节点的输出。✅
$("<node-name>").item关联的数据项,即指定节点中用于生成当前数据项的数据项。关联机制见数据项关联。✅
$("<node-name>").item.binary关联数据项的二进制数据,以二进制属性名为键(默认为 data)。可用属性见 BinaryFile。✅
$("<node-name>").params包含指定节点查询设置的对象,例如执行的操作、结果数量上限等。✅
$("<node-name>").context布尔值,仅适用于 Loop Over Items 节点。提供节点运行状态,可用来判断节点是否仍在处理数据项。✅
$("<node-name>").itemMatching(currentNodeInputIndex)在 Code 节点中需要从输入数据项回溯时,用它代替 $("<node-name>").item。✅

引用前面节点的二进制数据 ​

$('<node-name>').item 返回完整的关联数据项,因此读取二进制数据的方式与读取 JSON 类似:.item.json 用于该数据项的 JSON 对象,.item.binary 用于文件、图片和其他附件等二进制数据。

一个数据项可以包含多个二进制属性,每个属性都有自己的名称,因此 .item.binary 返回这些属性组成的对象,而非单个值。多数节点将二进制数据放在名为 data 的属性下,但具体名称取决于上游节点。每个二进制属性都是 BinaryFile,包含 fileName、mimeType 和 fileExtension 等字段。

例如,要获取 HTTP Request 节点生成的 data 二进制属性的文件名:

{{ $('HTTP Request').item.binary.data.fileName }}

二进制数据及生成它的节点,详见二进制数据。

相关资源 ​

本文为社区中文翻译。查看对应英文原文