n8n 表达式语法指南:快速修复 {{ }} 报错与变量调用

解决 n8n 工作流中动态值调用失败的问题,通过规范化 {{ }} 语法、明确 json/node 变量路径,快速定位并修复表达式报错。

为什么需要这个技能

在 n8n 中,绝大多数节点参数都需要通过表达式(Expressions)来实现动态赋值。初学者最容易在两个地方出错:一是忘记包裹双花括号 {{ }},导致参数被当作纯文本处理;二是误以为 Webhook 接收的数据在根目录,导致无法获取到实际的用户提交内容。

掌握这套语法规范,可以让你在构建复杂工作流时,精准地在不同节点间传递数据,而无需频繁通过运行节点来猜测数据结构。

适用场景

  • 在节点参数中使用 {{ ... }} 语法定义动态值。
  • 需要引用之前节点的输出结果(跨节点数据传递)。
  • 处理 Webhook 接收到的 Payload 数据。
  • 在工作流中使用当前时间戳(nowenv)。

核心工作流

1. 基础语法规范

所有动态内容必须包裹在双花括号中:

  • ✅ 正确:{{$json.email}}
  • ❌ 错误:$json.email(会被视为普通字符串)

2. 核心变量调用

  • 当前节点数据:使用 {{$json.fieldName}}。如果字段名含空格,必须使用方括号:{{$json['field name']}}
  • 跨节点引用:使用 {{$node["节点名称"].json.fieldName}}。注意节点名称必须加引号且区分大小写。
  • 时间与环境:使用 {{$now}} 获取当前时间,{{$env.VARIABLE_NAME}} 获取环境变量。

3. Webhook 数据陷阱(最常见错误)

Webhook 节点接收的数据不在根目录,而是在 .body 属性下。

  • ❌ 错误:{{$json.name}}
  • ✅ 正确:{{$json.body.name}}

4. 特殊场景禁用

  • Code 节点:直接使用 JavaScript 语法,禁止使用 {{ }}
    • ✅ 正确:const email = $json.email;
  • Webhook 路径:仅支持静态字符串,不支持表达式。

下载和安装

下载 n8n-expression-syntax 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐