cursor-init/.cursor/rules/elysia-backend-rules.mdc
expressgy 5b0b37ef78 chore: 项目初始化相关配置与文档归档优化
- Prettier 配置迁移为 .prettierrc.cjs,解决 ESM/CJS 兼容问题
- 优化 package.json,补全元信息、整理依赖、完善 Bun 热更新脚本
- 归档项目初始化 PRD 与任务清单到 tasks/archive,并加日期前缀
- 同步代码风格与格式化配置,提升团队协作一致性

归档文件:tasks/archive/20240610-prd-项目初始化.md, tasks/archive/20240610-tasks-prd-项目初始化.md
2025-06-28 02:03:40 +08:00

141 lines
5.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description:
globs:
alwaysApply: true
---
# ElysiaBun.js后端开发规范
## 1. 项目结构
- 推荐目录结构如下,分层清晰,便于维护和扩展:
```
├── src/
│ ├── controllers/ # 路由与业务入口
│ ├── services/ # 业务逻辑
│ ├── models/ # 数据模型与类型定义
│ ├── middlewares/ # 中间件
│ ├── plugins/ # Elysia 插件
│ ├── utils/ # 工具函数
│ ├── validators/ # 参数校验,注意!!!所有的参数校验必须挡在此目录中,目录结构遵照路由结构
│ ├── config/ # 配置文件
│ ├── type/ # 类型定义文件
│ └── app.ts # 应用入口
├── tests/ # 测试用例
├── public/ # 静态资源
├── .env # 环境变量
├── bun.lockb # Bun 依赖锁
├── package.json
└── README.md
└── .git/ # Git版本控制目录跟踪项目历史和协作
```
## 2. 代码风格
- 强制使用 ESLint + Prettier 统一代码风格TypeScript 项目建议使用 `@typescript-eslint`。
- 文件、变量、函数、类命名采用小驼峰camelCase类名用大驼峰PascalCase
- 严格类型检查,禁止使用 `any`,优先使用类型推断和类型声明。
- 每个文件、类、方法、复杂逻辑必须有规范注释(参考注释规范 rules
- 代码提交前必须通过 lint 检查和格式化。
## 3. 路由与接口设计
- 路由统一注册在 `controllers` 目录下,按业务模块拆分。
- 遵循 RESTful API 设计原则,接口资源命名清晰、语义化。
- 路由统一使用小写、短横线分隔(如 `/api/v1/user-info`)。
- GET 用于获取资源POST 用于创建PUT/PATCH 用于更新DELETE 用于删除。
- 所有接口返回统一的数据结构,例如:
```json
{
"code": 0,
"message": "success",
"data": {}
}
```
- 错误码、错误信息需文档化,便于前后端协作。
## 4. 参数校验
- 所有接口参数必须进行校验。
- 校验逻辑统一放在 `validators` 目录,便于复用和维护。
- 校验失败时返回标准错误响应,禁止直接抛出异常。
## 5. 中间件与插件
- 公共逻辑如鉴权、日志、限流、CORS、错误处理等必须通过中间件实现统一注册在 `middlewares` 或 `plugins` 目录。
- 推荐使用 Elysia 官方和社区插件(如 `@elysiajs/cors`、`@elysiajs/jwt`、`@elysiajs/swagger` 等)。
- 自定义插件需有详细注释和文档。
## 6. 安全规范
- 禁止 SQL 注入、XSS、CSRF 等常见安全漏洞,使用 ORM/参数化查询。
- 重要接口需鉴权(如 JWT、Session敏感操作需权限校验。
- 密码等敏感信息必须加密存储,严禁明文。
- 配置信息(如密钥、数据库连接)使用环境变量管理,严禁写死在代码中。
- 日志中不得记录敏感信息。
## 7. 错误处理
- 所有异常必须统一捕获和处理,返回标准错误响应。
- 推荐全局错误处理中间件,记录错误日志,便于排查问题。
- 错误响应结构示例:
```json
{
"code": 1001,
"message": "参数校验失败",
"data": null
}
```
## 8. 日志与监控
- 统一使用日志库(如 pino、winston区分 info、warn、error 等级。
- 关键操作、异常、接口请求需有日志记录,便于排查问题。
- 推荐接入监控系统(如 Prometheus、ELK
## 9. 测试
- 必须编写单元测试和集成测试,覆盖核心业务逻辑。
- 推荐使用 VitestBun 原生支持、Jest 等测试框架。
- 新增功能需同步补充测试用例CI 阶段自动跑测试。
- 测试代码与业务代码分离,统一放在 `tests` 目录。
## 10. 依赖与版本管理
- 依赖包需定期升级,避免使用过时或有安全漏洞的库。
- 使用 `bun.lockb` 锁定依赖版本。
- 不得将未使用的依赖、临时文件提交到仓库。
## 11. 持续集成与部署
- 推荐使用 CI 工具(如 GitHub Actions、GitLab CI自动化测试、构建、部署。
- 生产环境部署需有回滚机制,避免单点故障。
- 环境变量、密钥等敏感信息通过 CI/CD 平台安全注入。
## 12. 文档与协作
- 所有接口、核心模块需有详细文档,推荐使用 OpenAPI/Swagger 自动生成接口文档(可用 `@elysiajs/swagger`)。
- 重要变更需在 README/CHANGELOG 中记录。
- 团队成员需遵守代码评审流程,确保代码质量。
- 项目根目录应有完整的 README包含启动、开发、测试、部署等说明。
## 13. 其他最佳实践
- 代码与注释同步更新,避免注释失效。
- 复杂算法、业务逻辑、边界处理、特殊依赖等务必详细注释。
- 严禁在注释、日志、代码中出现密码、密钥、用户隐私等敏感信息。
- 推荐在项目根目录下提供注释模板和接口模板,便于新成员快速上手。
- 重要模块、核心业务建议将注释内容同步到项目文档,便于知识传承和查阅。
## 14. 模块引入
- 全部使用路径别名,如`@/app` `@/config/db.config`
- 注意更新 tsconfig.json bunfig.toml 等配置中关于路径别名的配置
## 15. 配置文件
- 配置请全部存放在config中,不要再其他文件使用process.env
- 除了密码,所有配置都需要有默认值
---
**请所有开发者严格遵守以上规范,保障 Elysia 后端服务的健壮性、安全性与可维护性。**