> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-docs-agent-app-service-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 代码

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](/en/cloud/use-dify/nodes/code)。

代码节点执行自定义 Python 或 JavaScript 来处理工作流中复杂的数据转换、计算和逻辑。当预设节点无法满足你的特定处理需求时可以使用它。

<Frame caption="代码节点配置界面">
  ![代码节点配置界面](https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/9969aa1bc1912aebe366f5d8f5dde296.png)
</Frame>

## 配置

定义 **输入变量** 以访问工作流中其他节点的数据，然后在代码中引用这些变量。你的函数必须返回一个包含你已声明的 **输出变量** 的字典。

```python theme={null}
def main(input_variable: str) -> dict:
    # Process the input
    result = input_variable.upper()
    return {
        'output_variable': result
    }
```

## 语言支持

根据你的需求和熟悉程度在 **Python** 和 **JavaScript** 之间进行选择。两种语言都在安全沙箱中运行，并可访问用于数据处理的常用库。

<Tabs>
  <Tab title="Python">
    Python 包含标准库，如 `json`、`math`、`datetime` 和 `re`。非常适合数据分析、数学运算和文本处理。

    ```python theme={null}
    def main(data: list) -> dict:
        import json
        import math
        
        average = sum(data) / len(data)
        return {'result': math.ceil(average)}
    ```
  </Tab>

  <Tab title="JavaScript">
    JavaScript 提供标准内置对象和方法。适合 JSON 操作和字符串操作。

    ```javascript theme={null}
    function main(data) {
        const processed = data.map(item => item.toUpperCase());
        return { result: processed };
    }
    ```
  </Tab>
</Tabs>

## 错误处理和重试

为失败的代码执行配置自动重试行为，并定义代码遇到错误时的回退策略。

<Frame caption="错误处理配置选项">
  ![错误处理配置选项](https://assets-docs.dify.ai/2024/12/58f392734ce44b22cd8c160faf28cd14.png)
</Frame>

**重试设置** 允许最多 10 次自动重试，并可配置间隔（最大 5000ms）。启用此功能来处理临时处理问题。

**错误处理** 让你在代码执行失败时定义回退路径，使你的工作流即使在代码遇到问题时也能继续运行。

<Frame caption="重试配置界面">
  ![重试配置界面](https://assets-docs.dify.ai/2024/12/9fdd5525a91dc925b79b89272893becf.png)
</Frame>

## 输出验证和限制

代码输出会自动验证并有严格限制：

* **字符串**：最大长度 80,000 个字符，空字节会被移除
* **数字**：范围从 -999999999 到 999999999，浮点数限制为 10 位小数
* **对象/数组**：最大深度 5 级，以防止复杂的嵌套结构

这些限制确保工作流的性能并防止内存问题。

## 安全考虑

代码在严格的沙箱中执行，阻止文件系统访问、网络请求和系统命令。这在提供编程灵活性的同时保持安全性。

出于安全原因，某些操作会被自动阻止。避免尝试访问系统文件或执行可能危险的操作：

<Frame caption="Cloudflare WAF 安全过滤">
  ![Cloudflare WAF 安全过滤](https://assets-docs.dify.ai/2024/12/ad4dc065c4c567c150ab7fa7bfd123a3.png)
</Frame>

如果代码无法保存，检查浏览器的网络选项卡，安全过滤器可能正在阻止潜在危险的操作。

## 依赖支持

代码节点支持 Python 和 JavaScript 的外部依赖：

```python theme={null}
# Python: Import numpy, pandas, requests, etc.
import numpy as np
import pandas as pd

def main(data: list) -> dict:
    df = pd.DataFrame(data)
    return {'mean': float(np.mean(df['values']))}
```

```javascript theme={null}
// JavaScript: Import lodash, moment, etc.
const _ = require('lodash');

function main(data) {
    return { unique: _.uniq(data) };
}
```

沙箱环境中预装了一组标准包。导入这组之外的包会在执行时失败。
