5.计算已预订订单
在工作流程的这一步中,您将了解 n8n 如何构建数据,以及如何添加自定义 JavaScript 代码以使用代码节点执行计算。完成此步骤后,您的工作流程应如下所示:
没有任何
Nathan 工作流程的下一步是根据已预订的订单计算两个值:
- 已预订订单总数
- 所有预订订单的总价值
要计算数据并向工作流添加更多功能,您可以使用代码节点,它允许您编写自定义 JavaScript 代码。
关于代码节点
代码节点模式
代码节点有两种操作
模式,取决于您想要如何处理项目:- 对所有项目运行一次允许您编写代码来一次性处理所有输入项目(作为一个组)。
- 为每个项目运行一次会为每个输入项目执行一次代码。
了解有关如何使用
代码节点的更多信息。在 n8n 中,节点之间传递的数据是具有以下 JSON 结构的对象数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
- (必需)n8n 将实际数据存储在嵌套键中。此属性是必需的,但可以设置为任何值,从空对象(例如)到数组以及深度嵌套数据。如果缺少对象和父数组,代码节点会自动将数据包装到对象和父数组中( )。
- (可选)项目的二进制数据。n8n 中的大多数项目不包含二进制数据。
- (必需)二进制数据的任意键名。
- (必需)Base64 编码的二进制数据。
- (可选)如果可能的话应该设置。
- (可选)如果可能的话应该设置。
- (可选)如果可能的话应该设置。
您可以在
n8n 数据结构页面上了解有关预期格式的更多信息。配置代码节点
现在让我们看看如何使用代码节点完成 Nathan 的任务。
在您的工作流程中,添加一个连接到
If 节点分支的Code 节点。打开代码节点窗口,配置以下参数:
- 模式:选择对所有项目运行一次。
- 语言:选择JavaScript 。
-
复制下面的代码并粘贴到
代码框中以替换现有代码:1 2 3 4 5 6 7 8 9
let items = $input.all(); let totalBooked = items.length; let bookedSum = 0; for (let i=0; i < items.length; i++) { bookedSum = bookedSum + items[i].json.orderPrice; } return [{ json: {totalBooked, bookedSum} }];
请注意我们返回计算结果的格式:
1 | |
数据结构错误
如果您没有使用正确的数据结构,您将收到一条错误消息:
现在选择
执行步骤,您应该看到以下结果: