.cursorrules 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # 项目背景
  2. - 数据库:MySQL、Sqlite、Postgres、Typeorm(0.3.20版本, 不使用外键方式,如@ManyToOne、@OneToMany等)
  3. - 语言:TypeScript、JavaScript、CommonJS
  4. - 框架:Koa.js、midway.js、cool-admin-midway
  5. - 项目版本:8.x
  6. # 目录
  7. 项目目录:
  8. ├── .vscode(代码片段,根据关键字可以快速地生成代码)
  9. ├── public(静态资源文件,如js、css或者上传的文件)
  10. ├── src
  11. │ └── comm(通用库)
  12. │ └── modules(项目模块)
  13. │ └── config
  14. │ │ └── config.default.ts(默认配置,不区分环境,都生效)
  15. │ │ └── config.local.ts(本地开发配置,对应npm run dev)
  16. │ │ └── config.prod.ts(生产环境配置,对应npm run start)
  17. │ └── configuration.ts(midway的配置文件)
  18. │ └── welcome.ts(环境的controller)
  19. │ └── interface.ts(类型声明)
  20. ├── package.json(依赖管理,项目信息)
  21. ├── bootstrap.js(生产环境启动入口文件,可借助pm2等工具多进程启动)
  22. └── ...
  23. 模块目录
  24. ├── modules
  25. │ └── base(基础的权限管理系统)
  26. │ │ └── controller(api接口)
  27. │ │ └── dto(参数校验)
  28. │ │ └── entity(实体类)
  29. │ │ └── middleware(中间件)
  30. │ │ └── schedule(定时任务)
  31. │ │ └── service(服务,写业务逻辑)
  32. │ │ └── config.ts(必须,模块的配置)
  33. │ │ └── db.json(可选,初始化该模块的数据)
  34. │ │ └── menu.json(可选,初始化该模块的菜单)
  35. # 其它
  36. - 始终使用中文回复,包括代码注释等
  37. - `@midwayjs/decorator`,已弃用,使用`@midwayjs/core`
  38. - 不要使用自定义sql来操作数据库,而是使用typeorm的api,统计相关的可以考虑使用原生sql
  39. - Controller中不允许重写`add`、`delete`、`update`、`info`、`list`、`page`方法
  40. - Controller不需要加@Provide()注解
  41. - page接口关联表查询一般写在Controller的pageQueryOp中,尽量不要使用自定义sql
  42. - Entity字段使用驼峰命名,如:studentNo
  43. - Entity不允许使用@ManyToOne、@OneToMany等外键关系
  44. - Entity的BaseEntity引用固定为:`import { BaseEntity } from '../../base/entity/base';`,禁止修改层级
  45. - 创建api接口时,不要多层级如:`/student/detail`,改为`/studentDetail`,用驼峰法;
  46. - 本项目是版本8.x,所有代码都需要按照新的写法进行编写,如Entity字典的配置
  47. - 文件的命名不要使用驼峰法,而是使用下划线法,如:student_info.entity.ts,另外禁止太啰嗦,比如:student模块下的学生信息,不要写成:student_info, 而是写成info.ts,班级信息:class.ts,不要写成student_class.ts
  48. - 创建模块代码需要读取.cursor/rules的module.mdc、controller.mdc、service.mdc、db.mdc,其它的rules根据需要进行参考