N8N研发技术收集

点击进入n8n主页
AI辅助学习N8N集流程编写
N8N视频教程
N8N工作流工具技术收集
Coze vs N8N vs Dify的区别
教程
玩转n8n工作流教程(一):Windows系统本地部署n8n自动化工作流(n8n中文汉化)
AI辅助学习N8N集流程编写
####[豆包]
帮我写一段n8n可以用的单行的{{}}程式,我要判断输入值是否等于“0-200 USB”输出TRUE,FALSE
在 n8n 中,$ 是一个全局对象,它是 n8n 表达式系统的核心,用于访问工作流中的各种数据、节点信息、流程状态等。通过 $ 可以在表达式中获取和操作数据,是连接不同节点、处理数据的关键。
常见的 $ 相关属性和用法:
1.$json:最常用的属性,用于访问当前节点的输入数据(通常是前一个节点输出的 JSON 数据)。
例如:{{ $json.fieldName }} 可以获取输入数据中 fieldName 字段的值。
2.$node:用于访问其他节点的输出数据。
格式:$node["节点名称"].json 或 $node["节点名称"].data
例如:{{ $node["HTTP请求"].json.result }} 可以获取名为 “HTTP 请求” 的节点输出中 result 字段的值。
3.$flow:访问工作流本身的信息(如工作流 ID、名称等)。
例如:{{ $flow.name }} 会返回当前工作流的名称。
4.$env:访问 n8n 的环境变量。
例如:{{ $env.MY_API_KEY }} 可以获取名为 MY_API_KEY 的环境变量值。
5.$now:获取当前时间(时间戳格式)。
例如:{{ $now }} 会返回当前的 Unix 时间戳。
在 n8n 中,$
全局对象是表达式系统的核心,它封装了工作流运行时的所有上下文信息(数据、节点、环境等),并提供了一系列工具方法用于数据处理。以下是 $
全局对象的所有核心属性和方法的详细讲解,按功能分类说明:
用于访问当前节点的输入数据、其他节点的输出数据,或批量数据中的单个项目。
- 作用:访问当前节点的输入数据(即前一个节点输出的 JSON 格式数据)。
- 说明:当节点接收单条数据时,
$json
直接指向该数据对象;若接收多条数据(如列表),$json
指向当前迭代的单条数据。 - 示例:
若前节点输出 { "name": "张三", "age": 20 }
,则 {{ $json.name }}
返回 张三
。
- 作用:访问当前节点的原始输入数据(包含元数据的完整结构)。
- 说明:与
$json
不同,$data
包含数据的元信息(如 id
、timestamp
等),而 $json
仅包含核心业务数据。 - 示例:
{{ $data.id }}
返回当前数据的唯一标识(n8n 自动生成)。
- 作用:访问其他节点的输出数据(跨节点数据引用的核心)。
- 结构:
$node["节点名称"].属性
,常用属性包括: $node["节点名"].json
:获取该节点输出的最新一条数据(JSON 格式)。$node["节点名"].data
:获取该节点输出的最新一条完整数据(含元数据)。$node["节点名"].output
:获取该节点输出的所有数据(数组格式,包含多条数据)。$node["节点名"].parameter
:获取该节点的配置参数(如 HTTP 节点的 URL、请求方法等)。
- 示例:
若存在节点 “查询用户”,其输出为 { "id": 1, "name": "李四" }
,则: {{ $node["查询用户"].json.name }}
返回 李四
{{ $node["查询用户"].output[0].json.id }}
返回第一条数据的 id
(即 1
)。
- 作用:访问当前节点接收的所有输入数据(数组格式)。
- 说明:用于批量处理多条数据时,获取完整的数据集(而非单条)。
- 示例:
若输入 3 条数据,{{ $items.length }}
返回 3
;{{ $items[0].json.name }}
返回第一条数据的 name
字段。
- 作用:在循环 / 批量处理场景中,访问当前迭代的项目(与
$json
类似,但更强调迭代上下文)。 - 说明:常用于
SplitInBatches
、Loop
等节点中,或在 “批量操作” 模式下引用当前项。 - 示例:
{{ $item.json.value }}
等价于 {{ $json.value }}
,但更明确表示 “当前迭代项”。
用于访问工作流本身的配置、执行状态等元信息。
- 作用:获取当前工作流的基本信息。
- 常用属性:
$flow.id
:工作流的唯一 ID(UUID)。$flow.name
:工作流的名称(如 “用户数据同步”)。$flow.active
:工作流是否启用(true
/false
)。$flow.createdAt
:工作流创建时间(时间戳)。
- 示例:
{{ $flow.name }}
返回当前工作流的名称。
- 作用:获取当前工作流执行实例的信息。
- 常用属性:
$execution.id
:当前执行的唯一 ID。$execution.status
:执行状态(running
/success
/failed
)。$execution.startTime
:执行开始时间(时间戳)。$execution.mode
:执行模式(manual
手动触发 /trigger
触发器触发)。
- 示例:
{{ $execution.id }}
返回当前执行的 ID,可用于日志追踪。
- 作用:获取触发器节点的信息(仅当工作流由触发器启动时有效)。
- 常用属性:
$trigger.id
:触发器节点的 ID。$trigger.name
:触发器节点的名称(如 “定时触发”)。$trigger.type
:触发器类型(如 cron
/webhook
/manual
)。
- 示例:
{{ $trigger.type }}
返回触发当前工作流的方式(如 webhook
)。
- 作用:访问 n8n 的环境变量(在 n8n 配置文件或服务器环境中定义)。
- 说明:常用于存储敏感信息(如 API 密钥、数据库密码),避免硬编码。
- 示例:
若定义了环境变量 API_KEY=abc123
,则 {{ $env.API_KEY }}
返回 abc123
。
- 作用:获取当前时间的时间戳(毫秒级,Unix 时间戳)。
- 示例:
{{ $now }}
返回类似 1694567890123
的值(表示当前时间)。
- 作用:获取今天的起始时间戳(当天 00:00:00 的毫秒级时间戳)。
- 示例:
若当前是 2023-09-12,则 {{ $today }}
返回 1694476800000
(2023-09-12 00:00:00 的时间戳)。
$
提供了一系列内置工具方法,用于处理字符串、时间、JSON 等数据,无需额外节点即可完成常见转换。
- 作用:使用 JMESPath 语法 解析 JSON 数据(复杂 JSON 查询的高效工具)。
- 参数:
json
:要解析的 JSON 对象(如 $json
或 $node["节点名"].json
)。expression
:JMESPath 查询表达式(字符串)。
- 示例:
若 $json
为 { "users": [{"name": "张三"}, {"name": "李四"}] }
,则:
{{ $jmespath($json, "users[*].name") }}
返回 ["张三", "李四"]
(提取所有用户的名称)。
- 作用:基于
moment.js
处理时间(格式化、加减时间等)。 - 参数:
date
:时间输入(可传入时间戳、日期字符串等)。format?
:可选,输出格式(如 YYYY-MM-DD
、HH:mm:ss
)。
- 示例:
{{ $moment($now, "YYYY-MM-DD") }}
返回当前日期(如 2023-09-12
)。{{ $moment("2023-01-01").add(1, "month").format("YYYY-MM-DD") }}
返回 2023-02-01
(加 1 个月)。
- 作用:提供常用工具函数(字符串、数组、逻辑判断等),包含多个子方法:
$utils.isEmpty(value)
:判断值是否为空(null
/undefined
/ 空字符串 / 空数组等)。
示例:{{ $utils.isEmpty($json.name) ? "未知" : $json.name }}
(为空时返回 “未知”)。$utils.isArray(value)
:判断值是否为数组。
示例:{{ $utils.isArray($json.items) ? "是数组" : "不是数组" }}
。$utils.parseInt(value, radix?)
:将值转为整数(支持进制,默认 10 进制)。
示例:{{ $utils.parseInt($json.age) + 1 }}
(年龄加 1)。$utils.toString(value)
:强制转为字符串。$utils.trim(value)
:去除字符串首尾空格。$utils.upperCase(value)
/$utils.lowerCase(value)
:转为大小写。$utils.md5(value)
:计算值的 MD5 哈希(字符串)。
- 作用:处理二进制数据(如文件内容)。
- 常用方法:
$binary.toString(binaryData, encoding?)
:将二进制数据转为字符串(默认 UTF-8 编码)。$binary.fromString(str, encoding?)
:将字符串转为二进制数据。
- 示例:
若节点接收文件二进制数据 $json.content
,则 {{ $binary.toString($json.content) }}
可获取文件的文本内容。
- 作用:Base64 编码 / 解码。
- 常用方法:
$base64.encode(str)
:将字符串 Base64 编码。
示例:{{ $base64.encode("hello") }}
返回 aGVsbG8=
。$base64.decode(encodedStr)
:将 Base64 字符串解码。
示例:{{ $base64.decode("aGVsbG8=") }}
返回 hello
。
- 作用:在节点执行失败时,访问错误信息(仅在错误处理场景中有效)。
- 常用属性:
$error.message
:错误描述(如 “API 请求失败”)。$error.stack
:错误堆栈信息(详细调试用)。$error.code
:错误代码(如 HTTP 404、500 等)。
- 示例:
在 “错误处理” 节点中,{{ $error.message }}
可返回具体错误原因。
$
全局对象是 n8n 表达式的 “数据中枢”,通过它可以:
- 跨节点访问数据(
$node
)、获取当前输入($json
); - 读取工作流上下文(
$flow
、$execution
); - 调用工具方法处理数据(
$moment
、$utils
、$jmespath
等); - 访问环境变量和系统信息(
$env
、$now
)。
掌握 $
的用法是 n8n 工作流数据处理的核心,能够极大提升流程的灵活性和效率。
N8N视频教程
查找N8N视频教程
点击查看原视频
Coze vs N8N vs Dify的区别