# koa_ts_template **Repository Path**: node-project-summary/koa_ts_template ## Basic Information - **Project Name**: koa_ts_template - **Description**: 后端开发模板项目:koa + ts + sequlize + mysql - **Primary Language**: NodeJS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-06-14 - **Last Updated**: 2023-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: Koa, TypeScript ## README ## 后端模板项目 ### 技术栈 - koa - typescript - sequelize - mysql ### 启动 本地调试启动:npm run dev 正式环境启动:npm run start (会先编译成JS再执行) ### 开发规范 1. 文件名以下划线方式命名,非驼峰命名。 2. 定义的常量名全部大写加下划线命名(例如constant文件定义的常量),普通变量使用驼峰命名(首字母小写)。 3. 文件头部引入模块顺序:第三方模块写在上方,项目内部文件模块写在下方。 4. 代码尽量简洁,简洁,简洁,遵循项目中eslint规范。 5. 数据表的修改(增、删、改)统一通过migrations脚本修改,方便在不同环境下进行数据库更新,项目启动前先执行migrations命令。 ### 文件目录 ``` . ├─ bin:脚本目录,存放项目脚本(项目运行之外的一些辅助程序) ├─ logs:日志文件 ├─ src:项目主目录 │ ├─ assets:静态资源文件,存放图片、文件等 │ ├─ common:通用配置 │ │ ├─ cache_keys.ts:缓存key定义 │ │ ├─ config.ts:项目配置文件,通过配置服务获取配置,按需加载本项目 │ │ ├─ constants.ts:常量文件,定义常量 │ │ └─ errors.ts:错误码定义 │ ├─ controllers:接口控制器: 参数校验和调用Service方法并返回结果,可以处理简单逻辑,具体业务逻辑都在Service里处理。 │ ├─ middlewares:中间件目录,存放自定义的中间件 │ ├─ migrations:存放数据库表更新脚本文件 │ ├─ models:数据库表实例 │ │ ├─ db.ts:数据库链接初始化文件 │ │ ├─ schemas:数据表模型 │ │ └─ index.ts:聚合model实例,自定义model操作方法 │ ├─ routers:路由目录 │ ├─ services:模块服务,具体业务逻辑处理 │ ├─ utils:工具方法 │ └─ server.ts:项目启动文件 ├─ .eslintignore:eslint忽略文件 ├─ .eslintrc.json:eslint配置文件 ├─ .gitignore:git忽略文件 ├─ package.json:项目包配置文件 ├─ README.md:项目基本介绍 └─ tsconfig.json ``` ### 一些细节设计 1. `/src/models/schemas/base.ts`是model的基类,在此类上添加Sequlize扩展方法。 2. `/src/middlewares/pagination.ts`是分页列表接口-分页信息处理中间件,统一分页数据参数格式。 3. `/src/middlewares/wrapper.ts`是接口包装器,在这个中间件里对接口请求和响应进行统一的包装处理(通常是针对请求参数和响应数据)。