Skip to content

OtterAdmin-Server is the backend server for this system, built with NestJS, TypeORM, and MySQL. It handles core business logic related to users, roles, permissions, logs, and other functionalities.

License

Notifications You must be signed in to change notification settings

yi-echo/OtterAdmin-Server

Repository files navigation

NestJS Starter 项目设计文档 🎯 项目定位

基于 NestJS + TypeScript 的后端服务脚手架,目标是快速搭建可扩展、可维护的接口服务,支持 CURD + 登录认证 + 权限控制 的最小业务闭环。

🏗 技术栈

框架:NestJS(基于 TypeScript + 装饰器开发)

数据库 ORM:TypeORM

数据库:MySQL / PostgreSQL(可扩展)

缓存/会话:Redis

前端对接:Vue 3 + Bootstrap 5.x

工具库:

reflect-metadata(IoC/DI 必需)

class-validator + class-transformer(数据校验)

passport / jwt(认证与鉴权)

🔑 核心概念 编程思想

FP(函数式编程):函数输入输出确定、独立、透明

OOP(面向对象编程):抽象、封装、高内聚低耦合、继承、多态

AOP(面向切面编程):拦截器、日志、权限控制

IoC/DI(控制反转 & 依赖注入):模块化解耦,依赖通过容器注入

📦 项目结构(Monorepo 推荐) src ├── modules │ ├── user # 用户模块 │ │ ├── user.module.ts │ │ ├── user.controller.ts │ │ ├── user.service.ts │ │ ├── user.entity.ts │ │ └── dto │ ├── auth # 登录/认证模块 │ ├── role # 权限模块 │ └── common # 通用模块(拦截器、过滤器、管道等) │ ├── main.ts # 入口 └── app.module.ts # 根模块

⚙️ NestJS 生命周期

客户端 ➡️ 中间件 (Middleware) ➡️ 守卫 (Guard)(鉴权/权限控制) ➡️ 拦截器 (Interceptor)(日志、响应包装) ➡️ 管道 (Pipe)(请求参数校验/转换) ➡️ 控制器 (Controller)(路由入口) ➡️ 服务 (Service)(业务逻辑) ➡️ 仓储层 (Repository/DAO)(数据库操作) ➡️ 拦截器 (Interceptor)(结果加工) ➡️ 过滤器 (Exception Filter)(错误处理) ➡️ 响应 (Response) ➡️ 客户端

🛡️ 接口服务流程

请求数据校验(Pipe)

使用 class-validator 和 DTO 避免 SQL 注入 / 参数不合法

例如:ValidationPipe

请求认证 & 鉴权(Guard)

认证(Authentication):JWT / Session 校验用户身份

鉴权(Authorization):基于角色或权限判断接口访问权限

路由分发(Controller)

定义接口路由与请求方法

控制请求进入对应业务逻辑

功能逻辑处理(Service)

核心业务逻辑实现

高内聚,单一职责

数据库操作(Repository)

TypeORM 实体与数据库交互

支持 MySQL、Postgres 等多数据库

错误与日志(Filter & Interceptor)

全局异常过滤器处理错误响应

日志记录请求/响应信息

统一接口响应(Interceptor)

包装统一的 API 返回结构

{ code, message, data }

🚀 最小闭环功能

用户注册 / 登录(JWT)

用户信息 CRUD

权限控制(基于角色 / 权限表)

接口文档(Swagger)

日志与错误处理

📖 顶层设计思路

需求分析

核心痛点:快速开发接口服务,保证安全与扩展性

最小闭环:用户 + 权限 + 接口服务

接口服务

Web 服务(NestJS HTTP)

数据库(MySQL + TypeORM)

缓存(Redis)

上线流程

功能闭环完成

接口文档生成(Swagger)

部署与测试

发布与交付

📌 总结

由简入繁,先实现 接口 CRUD + 登录认证 + 权限控制,再逐步扩展。 NestJS 提供良好的分层架构,结合 AOP/DI 思想,可以快速构建高可维护、可扩展的后端项目。

dotenv js-yaml lodash config / nestjs/config. 环境配置 joi

docker:https://hub.docker.com/_/mysql :adminer :mysql

sql: ORM是什么?https://typeorm.io/docs/getting-started/ 集成TypeOrm typeorm-cli. / knex. prisma. sequelize. typeorm mongodb&mongose

typeorm-model-generator

需求分析 逻辑设计 数据库创建

日志:

About

OtterAdmin-Server is the backend server for this system, built with NestJS, TypeORM, and MySQL. It handles core business logic related to users, roles, permissions, logs, and other functionalities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published