表达式#
表达式是在所有 n8n 节点中实现的强大功能。它们允许基于以下来源的数据动态设置节点参数:
- 上一个节点的执行结果
- 工作流
- 您的 n8n 环境
您也可以在表达式中执行 JavaScript,这使得将数据操作为有用的参数值变得方便且简单,无需编写大量额外代码。
n8n 创建并使用了一种名为 Tournament 的模板语言,并通过自定义方法和变量和数据转换函数进行了扩展。这些功能使执行常见任务(如从其他节点获取数据或访问工作流元数据)变得更容易。
n8n 另外支持两个库:
n8n 中的数据
编写表达式时,了解 n8n 中的数据结构和行为会很有帮助。有关在工作流中处理数据的更多信息,请参阅数据。
编写表达式#
使用表达式设置参数值:
- 将鼠标悬停在您要使用表达式的参数上。
- 在 固定/表达式 切换中选择 表达式。
- 在参数中编写您的表达式,或选择 打开表达式编辑器
来打开表达式编辑器。如果使用表达式编辑器,您可以在 变量选择器 中浏览可用数据。所有表达式都具有
{{ your expression here }}
的格式。
示例:从 Webhook 主体获取数据#
考虑以下场景:您有一个 Webhook 触发器,通过 Webhook 主体接收数据。您希望提取其中的一些数据以便在工作流中使用。
您的 Webhook 数据类似于这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
在工作流的下一个节点中,您只想获取 city
的值。您可以使用以下表达式:
1 |
|
此表达式:
- 使用 n8n 的自定义
$json
变量访问传入的 JSON 格式数据。 - 查找
city
的值(在此示例中为 "New York")。请注意,此示例使用 JMESPath 语法来查询 JSON 数据。您也可以将此表达式写为{{$json['body']['city']}}
。
示例:编写更长的 JavaScript#
您可以在表达式中做诸如变量赋值或多个语句之类的事情,但您需要使用 IIFE(立即调用函数表达式)的语法来包装您的代码。
以下代码使用 Luxon 日期和时间库来查找两个日期之间的月数差值。我们在表达式的手柄条括号和 IIFE 语法中都包装了代码。
1 2 3 4 5 6 |
|
常见问题#
关于表达式的常见错误或问题及建议的解决步骤,请参阅常见问题。
此页面是否
微信
🚀 与作者交流
关注公众号

n8n实战笔记
📚 教程 💡 案例 🔧 技巧
📚 教程 💡 案例 🔧 技巧
添加微信

1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持
⚡ 快答 🎯 定制 🚀 支持