您现在的位置是:网站首页> AI人工智能

N8N研发技术收集

摘要

N8N研发技术收集


1.jpg



点击进入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 中,$ 全局对象是表达式系统的核心,它封装了工作流运行时的所有上下文信息(数据、节点、环境等),并提供了一系列工具方法用于数据处理。以下是 $ 全局对象的所有核心属性和方法的详细讲解,按功能分类说明:

一、数据访问类(获取输入 / 节点数据)

用于访问当前节点的输入数据、其他节点的输出数据,或批量数据中的单个项目。

1. $json

  • 作用:访问当前节点的输入数据(即前一个节点输出的 JSON 格式数据)。
  • 说明:当节点接收单条数据时,$json 直接指向该数据对象;若接收多条数据(如列表),$json 指向当前迭代的单条数据。
  • 示例
    若前节点输出 { "name": "张三", "age": 20 },则 {{ $json.name }} 返回 张三

2. $data

  • 作用:访问当前节点的原始输入数据(包含元数据的完整结构)。
  • 说明:与 $json 不同,$data 包含数据的元信息(如 idtimestamp 等),而 $json 仅包含核心业务数据。
  • 示例
    {{ $data.id }} 返回当前数据的唯一标识(n8n 自动生成)。

3. $node

  • 作用:访问其他节点的输出数据(跨节点数据引用的核心)。
  • 结构$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)。

4. $items

  • 作用:访问当前节点接收的所有输入数据(数组格式)。
  • 说明:用于批量处理多条数据时,获取完整的数据集(而非单条)。
  • 示例
    若输入 3 条数据,{{ $items.length }} 返回 3{{ $items[0].json.name }} 返回第一条数据的 name 字段。

5. $item

  • 作用:在循环 / 批量处理场景中,访问当前迭代的项目(与 $json 类似,但更强调迭代上下文)。
  • 说明:常用于 SplitInBatchesLoop 等节点中,或在 “批量操作” 模式下引用当前项。
  • 示例
    {{ $item.json.value }} 等价于 {{ $json.value }},但更明确表示 “当前迭代项”。

二、工作流上下文类(获取工作流 / 执行信息)

用于访问工作流本身的配置、执行状态等元信息。

1. $flow

  • 作用:获取当前工作流的基本信息
  • 常用属性
    • $flow.id:工作流的唯一 ID(UUID)。
    • $flow.name:工作流的名称(如 “用户数据同步”)。
    • $flow.active:工作流是否启用(true/false)。
    • $flow.createdAt:工作流创建时间(时间戳)。
  • 示例
    {{ $flow.name }} 返回当前工作流的名称。

2. $execution

  • 作用:获取当前工作流执行实例的信息。
  • 常用属性
    • $execution.id:当前执行的唯一 ID。
    • $execution.status:执行状态(running/success/failed)。
    • $execution.startTime:执行开始时间(时间戳)。
    • $execution.mode:执行模式(manual 手动触发 /trigger 触发器触发)。
  • 示例
    {{ $execution.id }} 返回当前执行的 ID,可用于日志追踪。

3. $trigger

  • 作用:获取触发器节点的信息(仅当工作流由触发器启动时有效)。
  • 常用属性
    • $trigger.id:触发器节点的 ID。
    • $trigger.name:触发器节点的名称(如 “定时触发”)。
    • $trigger.type:触发器类型(如 cron/webhook/manual)。
  • 示例
    {{ $trigger.type }} 返回触发当前工作流的方式(如 webhook)。

三、环境与系统类(访问环境变量 / 系统信息)

1. $env

  • 作用:访问 n8n 的环境变量(在 n8n 配置文件或服务器环境中定义)。
  • 说明:常用于存储敏感信息(如 API 密钥、数据库密码),避免硬编码。
  • 示例
    若定义了环境变量 API_KEY=abc123,则 {{ $env.API_KEY }} 返回 abc123

2. $now

  • 作用:获取当前时间的时间戳(毫秒级,Unix 时间戳)。
  • 示例
    {{ $now }} 返回类似 1694567890123 的值(表示当前时间)。

3. $today

  • 作用:获取今天的起始时间戳(当天 00:00:00 的毫秒级时间戳)。
  • 示例
    若当前是 2023-09-12,则 {{ $today }} 返回 1694476800000(2023-09-12 00:00:00 的时间戳)。

四、工具方法类(数据处理 / 转换函数)

$ 提供了一系列内置工具方法,用于处理字符串、时间、JSON 等数据,无需额外节点即可完成常见转换。

1. $jmespath(json, expression)

  • 作用:使用 JMESPath 语法 解析 JSON 数据(复杂 JSON 查询的高效工具)。
  • 参数
    • json:要解析的 JSON 对象(如 $json 或 $node["节点名"].json)。
    • expression:JMESPath 查询表达式(字符串)。
  • 示例
    若 $json 为 { "users": [{"name": "张三"}, {"name": "李四"}] },则:
    {{ $jmespath($json, "users[*].name") }} 返回 ["张三", "李四"](提取所有用户的名称)。

2. $moment(date, format?)

  • 作用:基于 moment.js 处理时间(格式化、加减时间等)。
  • 参数
    • date:时间输入(可传入时间戳、日期字符串等)。
    • format?:可选,输出格式(如 YYYY-MM-DDHH: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 个月)。

3. $utils

  • 作用:提供常用工具函数(字符串、数组、逻辑判断等),包含多个子方法:
    • $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 哈希(字符串)。

4. $binary

  • 作用:处理二进制数据(如文件内容)。
  • 常用方法
    • $binary.toString(binaryData, encoding?):将二进制数据转为字符串(默认 UTF-8 编码)。
    • $binary.fromString(str, encoding?):将字符串转为二进制数据。
  • 示例
    若节点接收文件二进制数据 $json.content,则 {{ $binary.toString($json.content) }} 可获取文件的文本内容。

5. $base64

  • 作用:Base64 编码 / 解码。
  • 常用方法
    • $base64.encode(str):将字符串 Base64 编码。
      示例:{{ $base64.encode("hello") }} 返回 aGVsbG8=
    • $base64.decode(encodedStr):将 Base64 字符串解码。
      示例:{{ $base64.decode("aGVsbG8=") }} 返回 hello

五、错误处理类(访问错误信息)

1. $error

  • 作用:在节点执行失败时,访问错误信息(仅在错误处理场景中有效)。
  • 常用属性
    • $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的区别







Top