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 将实际数据存储在嵌套的
json
键中。此属性是必需的,但可以设置为从空对象(如{}
)到数组和深度嵌套数据的任何内容。如果缺少,代码节点会自动将数据包装在json
对象和父数组([]
)中。 - (可选)项目的二进制数据。n8n 中的大多数项目不包含二进制数据。
- (必需)二进制数据的任意键名。
- (必需)Base64 编码的二进制数据。
- (可选)如果可能应设置。
- (可选)如果可能应设置。
- (可选)如果可能应设置。
您可以在 n8n 数据结构 页面上了解更多关于期望格式的信息。
配置代码节点#
现在让我们看看如何使用代码节点完成 Nathan 的任务。
在您的工作流中,添加一个连接到 If 节点 的 false
分支的代码节点。
打开代码节点窗口后,配置这些参数:
- 模式:选择为所有项目运行一次。
-
语言:选择 JavaScript。
在代码节点中使用 Python
虽然我们在下面使用 JavaScript,但您也可以在代码节点中使用 Python。要了解更多信息,请参阅代码节点文档。
-
复制下面的代码并将其粘贴到代码框中以替换现有代码:
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 |
|
数据结构错误
如果您不使用正确的数据结构,您将收到错误消息:Error: Always an Array of items has to be returned!
现在选择执行步骤,您应该看到以下结果:

接下来做什么?#
Nathan 🙋:哇,代码节点很强大!这意味着如果我有一些基本的 JavaScript 技能,我就可以增强我的工作流。
您 👩🔧:是的!您可以从无代码进步到低代码!
Nathan 🙋:现在,我如何将已预订订单的计算发送到我团队的 Discord 频道?
您 👩🔧:有一个 n8n 节点可以做到这一点。我将在下一步中设置它。