You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大型Discord Bot项目文件目录组织方案咨询 如何按功能拆分文件夹存放代码

中大型Discord Bot通用项目目录组织方案

以下是业内普遍采用的解耦式目录结构,完全匹配你的拆分需求:

<项目根目录>
├── index.js / main.py          # 项目主入口,仅负责Bot初始化、登录、全局逻辑挂载
├── .env / config.json          # 全局配置文件,存储Token、API密钥、功能开关等
├── package.json / requirements.txt # 依赖声明文件
├── commands/                   # 指令处理逻辑目录(指令相关内容独立存放)
│   ├── admin/                  # 管理员指令分类
│   ├── fun/                    # 娱乐类指令分类
│   └── utility/                # 工具类指令分类
│       └── userinfo.js         # 单个指令单独成文件,仅保留当前指令的业务逻辑
├── api/                        # HTTP相关逻辑目录(HTTP请求/响应内容独立存放)
│   ├── discord/                # Discord官方API自定义封装
│   ├── third-party/            # 第三方服务API调用封装
│   └── request.js              # 统一的HTTP请求实例封装,统一处理超时、重试、错误兜底
├── events/                     # Bot事件处理目录
│   ├── messageCreate.js        # 消息发送事件处理逻辑
│   ├── guildMemberAdd.js       # 新成员加入事件处理逻辑
│   └── interactionCreate.js    # 交互事件(斜杠指令、按钮等)处理逻辑
├── utils/                      # 通用工具函数目录(embed builder等无归类通用逻辑存放)
│   ├── embedBuilder.js         # Embed构建工具封装
│   ├── permissionChecker.js    # 权限校验通用方法
│   └── dateFormatter.js        # 时间格式化通用方法
├── models/                     # 数据库模型目录(如果用到数据库)
│   ├── userModel.js
│   └── guildModel.js
└── assets/                     # 静态资源目录
    ├── images/
    └── templates/

核心设计规则

  • 主入口文件不写入任何业务逻辑,仅做初始化和模块挂载,避免主文件冗余
  • 所有HTTP请求必须走api/目录下的封装层,禁止在指令、事件文件中直接编写请求逻辑,统一处理错误兜底和日志上报
  • 所有无业务绑定的通用逻辑全部归入utils/目录,跨模块复用的方法不要重复编写
  • 指令、事件都按粒度拆分到单个文件,单个文件代码量建议控制在200行以内,提升可读性

内容的提问来源于stack exchange,提问作者noah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:39:03