SuperAPI AI 工具集

n8n-syntax-expressions

办公与效率

查看项目

更新于 10-26 08:07

技能介绍

n8n-syntax-expressions 是一个 n8n 表达式语法参考技能包,重点解决在 n8n 节点参数中编写表达式时容易出现的变量引用错误和上下文混淆问题。

用途 该技能适用于编写 n8n 表达式、访问节点数据、使用 JMESPath 查询以及排查表达式错误等场景,可作为表达式写法的速查手册。

主要能力

  1. 表达式语法:n8n 表达式在节点参数字段中使用双花括号语法 {{ expression }},支持标准 JavaScript 运算及 n8n 内置变量。
  2. 当前节点输入:$json(当前项 JSON 数据)、$binary(当前项二进制数据)、$input.item、$input.all()、$input.first()、$input.last()、$input.params。
  3. 其他节点输出:$("node-name").all()、.first()、.last()、.item、.itemMatching(index)、.params、.context(仅 Loop Over Items 节点)、.isExecuted。
  4. 工作流与执行元数据:$workflow.id/name/active、$execution.id/mode/resumeUrl/resumeFormUrl/customData。
  5. 环境与配置:$env、$vars、$secrets(Code 节点不可用)。
  6. 日期时间:基于 Luxon DateTime 的 $now、$today。
  7. 节点执行上下文:$prevNode.name/outputIndex/runIndex、$runIndex、$itemIndex、$parameter、$nodeVersion、$pageCount(仅 HTTP Request 节点)。
  8. 工具函数:$ifEmpty(value, fallback)、$jmespath(object, searchString)、$getWorkflowStaticData(type)。
  9. HTTP 响应(仅 HTTP Request 节点):$response.body/headers/statusCode/statusMessage。

使用方式与关键规则 文档给出多条关键警告:Code 节点中不可使用 $itemIndex 与 $secrets;$jmespath() 参数顺序为 (object, searchString),与 JMESPath 规范相反;表达式日期应使用 Luxon 的 $now、$today、DateTime.fromISO()、DateTime.fromFormat(),而非 new Date();手动测试执行时不可依赖 $getWorkflowStaticData();静态数据应保持小型;当前项数据优先用 $json;表达式中链接项用 $("Node Name").item,Code 节点用 itemMatching(index);空值处理用 $ifEmpty;动态属性访问使用方括号写法。

文档还提供了常用模式:访问当前项数据、访问其他节点输出、条件表达式、JMESPath 查询、Luxon 日期运算、静态工作流数据持久化、多语句 IIFE、自定义执行数据读写、配对项(item linking)解析。$ifEmpty 在值为 ""、[]、{}、null、undefined 时返回后备值,对 0 和 false 不视为空。

表达式上下文方面:节点参数字段可用全部 $ 变量;JavaScript Code 节点除 $itemIndex 和 $secrets 外均可用;Python Code 节点使用下划线前缀变体;凭据字段仅 $credentials;HTTP Request 节点额外提供 $response 和 $pageCount;Loop Over Items 额外提供循环节点 context。

适用场景与限制 适合编写和调试 n8n 工作流表达式的用户。资料未提供安装命令、收费信息或平台限制等细节,相关事实暂未提供。