Skip to content

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
[
    {
   	 "json": { // (1)!
   		 "apple": "beets",
   		 "carrot": {
   			 "dill": 1
   		 }
   	 },
   	 "binary": { // (2)!
   		 "apple-picture": { // (3)!
   			 "data": "....", // (4)!
   			 "mimeType": "image/png", // (5)!
   			 "fileExtension": "png", // (6)!
   			 "fileName": "example.png", // (7)!
   		 }
   	 }
    },
    ...
]
  1. (必需)n8n 将实际数据存储在嵌套键中。此属性是必需的,但可以设置为任何值,从空对象(例如)到数组以及深度嵌套数据。如果缺少对象和父数组,代码节点会自动将数据包装到对象和父数组中( )。
  2. (可选)项目的二进制数据。n8n 中的大多数项目不包含二进制数据。
  3. (必需)二进制数据的任意键名。
  4. (必需)Base64 编码的二进制数据。
  5. (可选)如果可能的话应该设置。
  6. (可选)如果可能的话应该设置。
  7. (可选)如果可能的话应该设置。

您可以在n8n 数据结构页面上了解有关预期格式的更多信息。

配置代码节点

现在让我们看看如何使用代码节点完成 Nathan 的任务。

在您的工作流程中,添加一个连接到If 节点分支的Code 节点

打开代码节点窗口,配置以下参数:

  • 模式:选择对所有项目运行一次
  • 语言:选择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
return [{ json: {totalBooked, bookedSum} }]

数据结构错误

如果您没有使用正确的数据结构,您将收到一条错误消息:

现在选择执行步骤,您应该看到以下结果:

代码节点输出
代码节点输出

下一步是什么?

Nathan 🙋 :哇,Code 节点太强大了!这意味着只要我掌握一些基本的 JavaScript 技能,就能增强我的工作流程。

你👩‍🔧 :是的!你可以从无代码进阶到低代码!

Nathan 🙋 :现在,我如何将已预订订单的计算结果发送到我团队的 Discord 频道?

你👩‍🔧 :有一个 n8n 节点。我会在下一步设置它。