本帖最后由 疯狂的赤泥 于 2025-5-13 20:41 编辑
n8n 表达式是嵌入在节点参数中的动态代码片段,允许您在工作流运行时引用和操作来自先前节点的数据。它们是使 n8n 工作流具有强大灵活性和动态性的核心机制。 基本语法: 表达式总是被包裹在双花括号 {{ }} 中。在双花括号内部,您可以访问和操作工作流的数据。 访问先前节点的数据: n8n 提供了一些全局对象和函数,用于访问先前节点的数据: 常用表达式函数和操作符: 在表达式内部,您可以使用 JavaScript 的基本语法以及 n8n 提供的一些内置函数和操作符进行数据处理: 字符串操作:
- .toUpperCase(): 将字符串转换为大写。{{ $input.first().json.name.toUpperCase() }}
- .toLowerCase(): 将字符串转换为小写。
- .substring(start, end): 返回字符串的子串。
- .replace(searchValue, replaceValue): 替换字符串中的子串。
- .split(separator): 将字符串分割成数组。
- .trim(): 移除字符串两端的空白字符。
数字操作:
- +, -, *, /, %: 基本的算术运算符。
- Math.round(), Math.ceil(), Math.floor(): 数学取整函数。
- Math.random(): 生成随机数。
日期和时间操作:
- new Date(): 创建一个新的 Date 对象。
- .toISOString(): 将 Date 对象转换为 ISO 8601 格式的字符串。
- .toLocaleDateString(), .toLocaleTimeString(): 将 Date 对象格式化为本地日期或时间字符串。
- 您还可以使用像 moment 这样的库(如果 n8n 实例包含它)进行更复杂的日期和时间操作。
逻辑操作符:
- ==, ===, !=, !==, >, <, >=, <=: 比较运算符。
- && (AND), || (OR), !(NOT): 逻辑运算符。
- 三元运算符 condition ? valueIfTrue : valueIfFalse.
数组操作:
- .length: 获取数组的长度。
- .map(callback): 对数组中的每个元素执行回调函数并返回新数组。
- .filter(callback): 返回数组中满足回调函数条件的元素组成的新数组。
- .join(separator): 将数组元素连接成一个字符串。
JSON 操作:
- JSON.stringify(object): 将 JavaScript 对象转换为 JSON 字符串。
- JSON.parse(string): 将 JSON 字符串转换为 JavaScript 对象。
示例: 假设前一个节点输出的 JSON 数据是 {"firstName": "John", "lastName": "Doe", "age": 30}。 - {{ $input.first().json.firstName }} 将会得到 "John"。
- {{ $input.first().json.lastName.toUpperCase() }} 将会得到 "DOE"。
- {{ $input.first().json.age > 25 ? "Adult" : "Young" }} 将会得到 "Adult"。
- {{ JSON.stringify($input.first().json) }} 将会得到 {"firstName":"John","lastName":"Doe","age":30}。
掌握 n8n 表达式是构建动态和智能自动化工作流的关键。通过灵活地引用和操作数据,您可以实现各种复杂的数据处理和流程控制。
|