# vben-nest-spec **Repository Path**: Sean-86/vben-nest-spec ## Basic Information - **Project Name**: vben-nest-spec - **Description**: vben前端,nest后端,openspec规范 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-27 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Vben Nest

## 简介 基于 [Vue Vben Admin](https://github.com/vbenjs/vue-vben-admin.git) 的二次开发项目,使用 [Nest](https://nestjs.com/) 框架构建后端服务,适配 vben 原有的 mock 接口调用。 ## 改动范围说明 - 新增 Nest 服务:apps/server, 服务按 apps/backend-mock 的接口规范适配 - 启动 playground 查看效果:pnpm dev:play - apps 下其他 web- 前缀前端页面未改动,可正常打开,仍调用 apps/backend-mock 的 mock 服务 ## 后端(apps/server) ### 技术栈 - 框架:NestJS(REST API) - 校验与转换:class-validator / class-transformer - 鉴权:全局 AuthGuard + @Public;JWT(access/refresh) - 数据层:PostgreSQL + Prisma(支持 migrate + seed 初始化) ### 公共设计(src/common) - decorators:Public、RawResponse(控制鉴权/是否包装响应) - guards:AuthGuard(Bearer access token 校验) - interceptors:ResponseInterceptor(统一响应包装) - filters:HttpExceptionFilter(统一异常输出) - dto:ApiResponse、PaginatedResponse(响应结构) - utils:jwt、response、mock-data(token/响应/模拟数据) ### 模块 - auth:登录、刷新、登出、权限码 codes - user:用户信息 - system:部门(dept)、菜单(menu)、角色(role) - table / timezone / upload / demo:示例接口 ## 安装与运行 ### 环境要求 - Node.js >= 20.19 - pnpm >= 10(推荐使用 corepack) - Docker Desktop(推荐,用于一键启动 PostgreSQL;不使用 Docker 也可自行安装 PostgreSQL) ### 1)获取代码 ```bash git clone https://github.com/MiniJude/vben-nest.git ``` ### 2)安装依赖 ```bash cd vben-nest npm i -g corepack pnpm install ``` ### 3)启动数据库与初始化数据(推荐:Docker Compose) ```bash docker compose -f apps/server/docker-compose.yml up -d # 初始化数据库结构与种子数据(会写入默认用户/角色/菜单/部门等) pnpm -F @vben/server run db:init ``` 默认数据库连接串位于 [apps/server/.env.development](./apps/server/.env.development)(Nest 运行时)与 [apps/server/prisma/.env](./apps/server/prisma/.env)(Prisma CLI)。 如果你不使用 Docker,请自行准备一个 PostgreSQL 实例,并把 `DATABASE_URL` 改成你的连接信息后再执行 `db:init`。 ### 4)启动后端(Nest API) ```bash pnpm -F @vben/server run dev # 默认端口:3000(可在 apps/server/.env.development 中修改 PORT) ``` ### 5)启动前端(Playground) ```bash pnpm dev:play ``` ### 6)打包构建 ```bash pnpm build ``` ### 默认账号 - vben / 123456 - admin / 123456 - jack / 123456 ### 常见问题 - Prisma 相关命令报错或找不到引擎:先在仓库根目录重新执行 `pnpm install` 再重试(本项目已为 Prisma 配置了构建许可白名单)。 - 端口占用:修改 `apps/server/.env.development` 的 `PORT` 后重启后端。 ## License [MIT © Vben-2020](./LICENSE)