## nest-admin
![](https://img.shields.io/github/commit-activity/m/buqiyuan/nest-admin) ![](https://img.shields.io/github/license/buqiyuan/nest-admin) ![](https://img.shields.io/github/repo-size/buqiyuan/nest-admin) ![](https://img.shields.io/github/languages/top/buqiyuan/nest-admin)
**基于 NestJs + TypeScript + TypeORM + Redis + MySql + Vue3 + Ant Design Vue 编写的一款简单高效的前后端分离的权限管理系统。希望这个项目在全栈的路上能够帮助到你。**
- 前端项目地址:[传送门](https://github.com/buqiyuan/vue3-antdv-admin)
### 演示地址
- [http://buqiyuan.gitee.io/vue3-antdv-admin/](http://buqiyuan.gitee.io/vue3-antdv-admin/)
- [Swagger Api 文档](https://nest-api.buqiyuan.site/swagger-api)
### 项目启动前的准备工作
- sql 文件:[/deploy/sql/init.sql](https://github.com/buqiyuan/nest-admin/tree/main/deploy/sql) 用于数据库初始化
- 项目相关配置,如:配置 mysql 和 redis 连接
- 公共配置: [.env](https://github.com/buqiyuan/nest-admin/blob/main/.env)
- 开发环境: [.env.development](https://github.com/buqiyuan/nest-admin/blob/main/.env.development)
- 生产环境: [.env.production](https://github.com/buqiyuan/nest-admin/blob/main/.env.production)
演示环境账号密码:
| 账号 | 密码 | 权限 |
| :-------: | :----: | :--------: |
| rootadmin | 123456 | 超级管理员 |
> 所有新建的用户初始密码都为 123456
本地部署账号密码:
| 账号 | 密码 | 权限 |
| :-------: | :----: | :--------: |
| rootadmin | 123456 | 超级管理员 |
## 快速体验
启动成功后,通过 http://localhost:7001/swagger-api/ 访问。
```bash
yarn docker:up
# or
docker compose --env-file .env.production up -d --no-build
```
停止并删除所有容器
```bash
yarn docker:down
# or
docker compose --env-file .env.production down
```
查看实时日志输出
```bash
yarn docker:logs
# or
docker compose --env-file .env.production logs -f
```
## 本地开发
- 获取项目代码
```bash
git clone https://github.com/buqiyuan/nest-admin
```
- 【可选】如果你是新手,还不太会搭建`mysql/redis`,你可以使用 `Docker` 启动指定服务供本地开发时使用, 例如:
```bash
# 启动MySql服务
docker compose --env-file .env.development run -d --service-ports mysql
# 启动Redis服务
docker compose --env-file .env.development run -d --service-ports redis
```
- 安装依赖
```bash
cd nest-admin
yarn install
```
- 运行
启动成功后,通过 http://localhost:7001/swagger-api/ 访问。
```bash
yarn dev
```
- 打包
```bash
yarn build
```
### 系统截图
![](https://s1.ax1x.com/2021/12/11/oTi1nf.png)
![](https://s1.ax1x.com/2021/12/11/oTithj.png)
![](https://s1.ax1x.com/2021/12/11/oTirHU.png)
![](https://s1.ax1x.com/2021/12/11/oTia3n.png)
### 欢迎 Star && PR
**如果项目有帮助到你可以点个 Star 支持下。有更好的实现欢迎 PR。**
### 致谢
- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
### LICENSE
[MIT](LICENSE)
NestJs CRUD 使用 nestjs + mysql + typeorm + red-nest-admin.zip
需积分: 0 160 浏览量
更新于2023-11-06
收藏 284KB ZIP 举报
NestJs CRUD 使用案例主要展示了如何利用NestJs框架,结合MySQL数据库、TypeORM实体管理以及Red-Nest-Admin后台管理界面,构建一个完整的CRUD(创建、读取、更新、删除)应用。NestJs是一款基于Node.js的渐进式JavaScript/TypeScript应用程序框架,它将函数式编程和面向对象编程的优点融合在一起,为开发高质量的API或服务提供了强大的支持。
让我们深入了解NestJs。NestJs基于Express和Fastify,它提供了一种模块化、可扩展和结构化的开发方式,使得代码更易于维护和组织。它引入了依赖注入(DI)和装饰器,这些都是Angular框架中的概念,使开发者能够更好地管理和解耦组件。
接下来是TypeORM,这是一个用于TypeScript和JavaScript的ORM(对象关系映射)库,它允许我们用面向对象的方式来操作数据库。TypeORM支持多种数据库,包括MySQL。在NestJs中使用TypeORM,我们可以定义实体类,这些类对应数据库中的表,并通过实体管理器或 repositories 进行数据操作。
在MySQL方面,这是一种广泛使用的开源关系型数据库管理系统,它以SQL(结构化查询语言)为基础,提供了事务处理、存储过程、触发器等功能,适合于处理大量数据。
Red-Nest-Admin是一个专门为NestJs设计的后台管理系统,它可以帮助开发者快速构建管理界面,实现数据展示、增删改查等功能。通过集成Red-Nest-Admin,可以大大简化UI部分的开发工作,让开发者更多地关注业务逻辑。
在实际的CRUD应用中,我们通常会遵循以下步骤:
1. **设置项目环境**:安装NestJs CLI,创建新项目,然后安装TypeORM和MySQL驱动。
2. **数据库配置**:在项目中配置数据库连接,包括数据库名称、用户名、密码等信息。
3. **定义实体**:根据数据库表结构,创建对应的TypeORM实体类,包含字段和注释。
4. **创建模块**:在NestJs中,每个功能通常对应一个模块,这里我们需要创建CRUD模块,导入必要的服务和控制器。
5. **编写控制器**:控制器负责处理HTTP请求,定义CRUD操作的方法,如`create()`, `findAll()`, `findOne()`, `update()`, `remove()`。
6. **创建服务**:服务层是业务逻辑的主要载体,负责与数据库交互,执行CRUD操作。使用TypeORM的entity manager或repository进行数据操作。
7. **实现路由**:在模块的路由器中,配置对应的路由来调用控制器的方法。
8. **集成Red-Nest-Admin**:根据Red-Nest-Admin的文档,配置路由和中间件,以便它能识别我们的实体并生成相应的管理界面。
9. **运行和测试**:启动应用,通过浏览器或Postman等工具进行接口测试,确保CRUD操作正常工作。
这个案例涵盖了Web开发的核心部分,包括前端接口、后端服务、数据库交互以及UI展示。对于初学者来说,这是一个很好的实践项目,可以加深对NestJs、TypeORM和MySQL的理解。对于有经验的开发者,这样的组合可以快速搭建起一个高效且稳定的后台系统。