文章目录
前言
大概内容:
1、利用nestjs和typeorm对MySQL进行简单的增删查改操作。
2、实现简单增删查改的接口编写
3、使用测试工具对接口进行测试
实验环境:
1、window11+vscode;
2、已经安装了nodejs和npm,并且安装了nestjs手脚架;
3、本文使用的是typeorm连接数据库操作
提示:以下是本篇文章正文内容,下面案例可供参考
项目源码
https://gitee.com/ciqiqq/crud.git
项目起步
window管理员控制台,linux是不需要管理员权限的,因为vscode不允许管理员打开,可能会造成不可预知的错误。
# 创建nestjs项目
nest new demo-name # 这里的demo-name是你的项目名称
# 进入刚刚创建的项目的文件夹
cd demo-name
#从该demo-name文件夹进入vscode
code .
示例
nest new nest-rabc
cd nest-rabc
code .
出现代码报红的情况
刚创建的项目,代码明明是正确的却报红的原因:prettier校验 和 ESLint校验 冲突
右侧文件栏右键选择Open in Integrated Terminal(打开vscode控制台)
在vscode控制台输入
npm run lint
代码运行之后出现下图就不会报错啦,以后出现这类问题都可以使用这句代码
挂载swagger
在 NestJS 中集成 Swagger 可以使你更容易地创建、文档化和测试 API。
如果用不惯swagger可以不挂载的,直接使用其他测试接口工具也是可以的,比如apifox,posman等
vscode控制台
npm install @nestjs/swagger swagger-ui-express --save
main.ts挂载swagger具体代码
import {
SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
const config = new DocumentBuilder()
.setTitle('CRUD')
.setDescription('数据库 增删查改 ')
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);
main.ts完整代码
import {
NestFactory } from '@nestjs/core';
import {
SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import {
AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const config = new DocumentBuilder()
.setTitle('Cats example')
.setDescription('The cats API description')
.setVersion('1.0')
.addTag('cats')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);
await app.listen(3000);
}
bootstrap();
创建增删改查生成器CRUD(仅限 TypeScript)
在 NestJS 中,CRUD 指的是在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。CRUD 操作在 NestJS 中通常是通过创建控制器来完成的,例如使用 Nest 提供的 @nestjs/typeorm 包中的 TypeOrmModule 和 TypeOrmCrudModule 来快速创建 CRUD 控制器。这些控制器提供了增查改删的基本操作,使得开发人员能够以类型安全的方式与数据库进行交互,并能够定义实体之间的各种关系,以及处理实体之间的关系。
在vscode控制台输入
# 创建增删改查生成器,简称CRUD
nest g resource resource-name # 这里的resource-name是你的增删改查生成器名称
#nest g res user # 这行代码的作用和上行代码的作用是一样的
示例
# 创建资源user
nest g res user --no-spec # --no-spec禁用测试文件生成
# 或 nest g resource user
回车之后选择REST API,然后回车就会自动选择Yes,出现下图即创建成功
出现下图红色框起来的文件部分即创建成功
安装插件Database Client
然后连接本地MySQL数据库,配置好后点击底部+Connect即可
结果显示
typeorm连接MySQL数据库
TypeORM是一个基于TypeScript和JavaScript的对象关系映射(ORM)框架,可以在多种平台上运行,包括Node.js、浏览器、Cordova、PhoneGap、Ionic、React Native、Expo和Electron等。它支持与TypeScript和JavaScript的最新特性一起使用,并提供了额外的特性以帮助开发人员开发任何使用数据库的应用程序,无论是有几张表的小型应用还是拥有多数据库的大型企业应用。通过TypeORM,开发人员可以以类型安全的方式与数据库进行交互,并能够定义实体之间的各种关系,以及处理实体之间的关系。它还提供了一个功能强大的查询