# nest_admin_remark **Repository Path**: pkpbp/nest_admin_remark ## Basic Information - **Project Name**: nest_admin_remark - **Description**: https://github.com/mrzym99/nest-admin的重制版、重制数据库设计、orm选型改为prisma - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

NestAdmin

中文 | English
--- [![license](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE) [![gitee stars](https://gitee.com/mrzym/nest-admin/badge/star.svg)](https://github.com/mrzym99/nest-admin) [![github stars](https://img.shields.io/github/stars/mrzym99/nest-admin)](https://github.com/mrzym99/nest-admin) [![github forks](https://img.shields.io/github/forks/mrzym99/nest-admin)](https://github.com/mrzym99/nest-admin) > [Gitee地址](https://github.com/mrzym99/nest-admin): https://github.com/mrzym99/nest-admin > [Github地址](https://github.com/mrzym99/nest-admin): https://github.com/mrzym99/nest-admin ## 简介 [NestAdmin](https://github.com/mrzym99/nest-admin) 是一个简单高效的的后台管理系统,基于最新的前端技术栈,包括 Nestjs, TypeScript, TypeOrm, Mysql 和 Redis,底层可选express或fastify(master分支采用express、fastify分支采用fastify)。 适用于WEB全栈人员快速开发后台管理系统。NestAdmin 配套前端项目Vue3NaiveAdmin [前端地址传送门](https://github.com/mrzym99/vue3-naive-admin) [项目文档](https://docs.mrzym.top) 注意:当前项目是 mrzym99 作者的版本上进行改造的,前端部分模板可以使用(但是还未修改类型之类的) 该版本是 nest-admin 的重制版,包含如下改动 - 所有主键从 uuid -> int - typeorm -> prisma ## 在线体验 超级管理员:superadmin 密码:123456 // 这个账户用于作者在演示模式下修改数据,默认是 123456,如果你需要可以修改密码。一般来说所有的权限都可以用这个账户给。这个角色整个系统只赋予了一个用户:superadmin。 管理员账户: admin 密码:123456 测试账户:test 密码:123456 游客账户:guest 密码:123456 [在线体验](https://nest.mrzym.top) ## 基础功能 | 功能模块 | 功能描述 | 是否完成 | 备注 | | ---------- | ------------------------------------------------------- | -------- | -------------- | | 用户认证 | 用户注册、登录、验证码登录、退出登录、修改密码 | ✅ | | 权限管理 | 基于角色的权限管理 | ✅ | | 部门管理 | 管理组织架构中的部门信息 | ✅ | | 岗位管理 | 管理岗位信息 | ❌ | 正在考虑做不做 | | 角色管理 | 管理不同用户角色及其权限 | ✅ | | 用户管理 | 管理用户信息及权限分配 | ✅ | | 菜单管理 | 管理系统菜单及权限控制 | ✅ | | 文件上传 | 支持文件上传功能 | ✅ | | 邮件服务 | 发送邮件通知或验证码 | ✅ | | 验证码服务 | 生成和验证验证码 | ✅ | | 日志服务 | 记录系统操作日志 | ✅ | | 定时任务 | 设置和管理定时任务 | ✅ | | 数据字典 | 管理系统中常用的字典数据 | ✅ | | 系统公告 | 发布和管理系统公告 | ✅ | | 参数配置 | 系统参数的配置管理 | ✅ | | 缓存管理 | 管理 Redis 缓存数据 | ✅ | | 支付功能 | 支持支付宝沙箱支付(测试环境) 正式支付仅仅是修改参数即可 | ✅ | | 第三方登录 | 支持 GitHub 第三方登录 | ✅ | ## 接口文档 Swagger文档: [Swagger](https://nest-server.mrzym.top:3366/docs) Knife4j版: [Swagger-Knife4j](https://nest-server.mrzym.top:3366/doc.html) ## 使用 **环境准备** 确保你的环境满足以下要求: - **git**: 你需要git来克隆和管理项目版本。 - **NodeJS**: >= 20.0.0,推荐 20.0.0 或更高。 - **pnpm**: >= 9.0.0,推荐 9.0.0 或更高。 - **prisma**: >= 6.6.0 **克隆项目** ```bash git clone https://github.com/mrzym99/nest-admin.git ``` **导入sql文件** sql文件: [nest_admin.sql](./sql/nest_admin.sql) 需要在本地mysql数据库中创建 nest_admin 数据库 并导入 nest_admin全量.sql **环境配置** 配置文件内会有注释,主要是配置 mysql 、 redis,本地需要启动 mysql 和 redis - [.env](./env) 基础配置 - [.env.development](./env.development) 开发环境配置 - [.env.production](./env.production) 生产环境配置 如果项目没有dotenv-cli,请先安装,方便使用环境变量管理prisma环境 例如执行prisma命令:`dotenv -e .env.test -- npx prisma db push` 指定环境执行js:`dotenv -e .env.test -- cross-env NODE_ENV=test node xxx` **安装依赖** ```bash pnpm i pnpm i -g dotenv-cli npx prisma generate ``` > 本项目使用 pnpm 管理依赖,如果你没有安装 pnpm,请先安装它(npm i pnpm -g)。 **启动项目** ```bash pnpm run start:dev ``` 运行起来后可以在项目日志内看到项目运行的地址和swagger文档地址 ## Docker 构建 本项目使用了 Docker 来构建和运行项目。您可以通过以下步骤来构建和运行项目: **环境要求** 您的环境必须满足以下要求: - 含有稳定版本的 Docker 和 Docker Compose。 **注意事项** docker-compose.yml 对应开发环境 dev,docker-compose.prod.yml对应生产环境 prod 1、构建项目 ``` pnpm run docker:build:dev # 开发环境 pnpm run docker:build:prod # 生产环境 ``` 2、运行项目 ``` pnpm run docker:up:dev # 开发环境 pnpm run docker:up:prod # 生产环境 ``` 3、停止和移除 ``` pnpm run docker:down # 停止容器 pnpm run docker:down:v # 停止容器 并且删除数据卷(慎用,清理数据卷后,容器内保存的数据就没有了) ``` 这些命令都是根据 `docker compose` 来进行编写的,只是将 `docker compose` 的命令写进了 `scripts` 里 [docker compose 命令大全](https://www.cnblogs.com/xyh9039/p/18540766) 如果遇到构建失败的情况,可能是因为您的Docker 环境存在问题。可以切换自己的Docker源地址,这里推荐 [阿里云镜像加速](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors) 还有一些镜像 如毫秒镜像等,可以问AI ## docker 常用命令 1、构建镜像 ``` // 构建镜像 image_name 镜像名称 tag 版本 docker build -t : . eg: docker build -t nest-admin:v1 . ``` 2、查看镜像 ``` docker images ``` 3、运行容器 ``` docker run -d -p 3000:3000 --name my-app my-app:v1 // -p 3000:3000 表示 -p 表示端口 第一个 3000 表示宿主机(服务器)端口 第二个3000 表示容器内端口 ``` 4、 查看容器 ``` docker ps ``` ## docker compose 常用命令 ``` docker-compose build:构建镜像。 docker-compose up:创建并启动容器。 docker-compose down:停止并删除容器、网络和卷(如果使用–v选项)。 docker-compose start:启动服务。 docker-compose stop:停止服务。 docker-compose restart:重启服务。 docker-compose logs:查看容器日志。 docker-compose ps:列出所有容器。 docker-compose config:检查docker-compose.yml文件的配置。 ``` ## docker 导出容器内的 数据库 ``` 1、进入容器 docker exec -it [容器名或ID] sh 2、导出 sql 到容器内 mysqldump -u root -p nest_admin > /opt/nest_admin.sql 3、导出 sql 到本地 docker cp [容器名或ID]:/opt/nest_admin.sql /opt/nest_admin.sql ``` ## 交流 `NestAdmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供微信和 QQ 交流群,使用问题欢迎在群内提问。

QQ交流群

## 开源协议 项目基于 [MIT © 2025 Xiao Zhang](./LICENSE) 协议,仅供学习参考,商业使用请保留作者版权信息,作者不保证也不承担任何软件的使用风险。 ## Prisma 数据库集成 本项目已经将数据库访问层从TypeORM迁移到Prisma,主要优势包括: - 类型安全:Prisma生成的客户端提供完全类型安全的API - 自动生成客户端:基于schema自动生成TypeScript类型 - 更好的开发体验:自动完成、类型提示等 - 高性能:优化的数据库访问 ### 使用方法 1. 在模块中注入PrismaService: ```typescript constructor(private prisma: PrismaService) {} ``` 2. 使用Prisma查询数据: ```typescript // 查询列表 const users = await this.prisma.sysUser.findMany({ where: { status: 1 }, include: { profile: true }, }); // 创建记录 await this.prisma.sysUser.create({ data: { username: 'admin', password: '123456', profile: { create: { nickName: '管理员', }, }, }, }); // 更新记录 await this.prisma.sysUser.update({ where: { id: 1 }, data: { status: 0 }, }); // 删除记录 await this.prisma.sysUser.delete({ where: { id: 1 }, }); ``` 3. 约束验证器: 项目中保留了TypeORM的唯一性约束验证器,但已修改为使用Prisma: ```typescript @IsUnique('User') username: string; ``` ### 集成文件 - `src/shared/prisma/prisma.module.ts` - Prisma模块定义 - `src/shared/prisma/prisma.service.ts` - Prisma服务 - `src/shared/prisma/constraints/unique.constraint.ts` - 唯一性约束验证器 - `src/config/prisma.config.ts` - Prisma配置 ### 环境变量 项目使用与之前相同的环境变量配置方式,在.env和.env.development中管理数据库连接等配置。