SuperAPI AI 工具集

n8n-expression-syntax

部署与运维

查看项目

更新于 10-15 11:46

技能介绍

n8n Expression Syntax 是关于在 n8n 工作流中正确编写表达式的专家指南,主要用于校验表达式语法并修复常见错误。

用途方面,它帮助你在 n8n 工作流的字段中写动态内容、访问变量、引用其他节点的数据,并在表达式报错时定位问题。

表达式格式上,n8n 中所有动态内容都使用双花括号包裹,例如 {{$json.email}}、{{$json.body.name}}、{{$node["HTTP Request"].json.data}}。不带花括号的 $json.email 会被当作普通文本,单花括号 {$json.email} 无效。

核心变量包括:$json 表示当前节点输出,可写 {{$json.fieldName}}、{{$json['field with spaces']}}、{{$json.nested.property}}、{{$json.items[0].name}};$node 用于引用其他节点,格式为 {{$node["Node Name"].json.fieldName}},节点名必须加引号、区分大小写、且与工作流中的节点名完全一致;$now 提供当前日期时间,可用 {{$now}}、{{$now.toFormat('yyyy-MM-dd')}}、{{$now.plus({days: 7})}};$env 用于读取环境变量,如 {{$env.API_KEY}}、{{$env.DATABASE_URL}}。

需要特别注意的是 Webhook 数据结构。Webhook 节点会把用户数据包裹在 .body 属性下,同时保留 headers、params、query 等字段。因此 {{$json.name}}、{{$json.email}} 是错误的,正确写法是 {{$json.body.name}}、{{$json.body.email}}、{{$json.body.message}}。

常见模式包括访问嵌套字段(点号或方括号),引用其他节点(节点名含空格时用方括号加引号),以及拼接内容,例如在文本中写 "Hello {{$json.body.name}}!"、在 URL 中使用表达式、在对象属性中写 "={{$json.body.name}}"。

不适合使用表达式的位置:Code 节点应使用直接的 JavaScript 访问,如 $json.email、$json.body.name 或 $input.item.json.email、$input.all(),而不是把表达式写成字符串;Webhook 路径只支持静态路径,不能使用表达式;凭据字段应使用 n8n 凭据系统,而非表达式。

验证规则方面:始终使用 {{}};字段名或节点名含空格时使用方括号写法;节点引用区分大小写,必须与工作流中的名称精确匹配;不要嵌套 {{}}。常见错误的快速修复包括:$json.field 改为 {{$json.field}};{{$json.field name}} 改为 {{$json['field name']}};{{$node.HTTP Request}} 改为 {{$node["HTTP Request"]}};{{{$json.field}}} 改为 {{$json.field}};Webhook 中的 {{$json.name}} 改为 {{$json.body.name}};Code 节点中的 '={{$json.email}}' 改为 $json.email。

资料还给出多个可用示例,例如 Webhook 到 Slack 的文本拼接、HTTP Request 到邮件节点的节点引用、以及用 $now.toFormat 格式化时间戳。数据类型处理涵盖数组(首项、长度、末项)、对象(点号与方括号)、字符串(拼接、toLowerCase、toUpperCase)和数字(直接使用、数学运算)。高级模式包括三元运算符、默认值、日期加减、字符串截取与替换等。

调试时可点击带表达式的字段,打开表达式编辑器(fx 图标)查看实时预览和红色错误提示。常见错误信息如 "Cannot read property 'X' of undefined" 通常表示父对象不存在,需要检查数据路径;表达式显示为普通文本通常表示缺少 {{}}。

可用方法包括字符串方法、数组方法以及基于 Luxon 的 DateTime 方法(如 toFormat、toISO、toLocal、plus、minus、set)和数字方法。最佳实践是:动态内容使用 {{}},含空格的字段用方括号,Webhook 数据从 .body 取,跨节点数据用 $node,并在表达式编辑器中测试;避免在 Code 节点、Webhook 路径和凭据字段中使用表达式,避免忘记引号、重复包裹花括号或误以为 Webhook 数据在根层。

资料中未提供该技能的收费、价格、平台、具体效果或安装步骤信息,这些内容暂未提供。