通过脚手架安装nest
npm i -g @nestjs/cli // 全局安装脚手架
nest new project-name // 创建一个Nest.js项目
npm run start:dev // Nest.js 启动命令
安装prisma
1. 将 Prisma CLI 作为开发依赖项添加到项目中
npm install prisma --save-dev
2. 通过使用以下命令创建Prisma 模式文件模板来设置 Prisma 项目:
npx prisma init
这个命令会生prisma的新目录也包含一个schema.prisma的文件夹
3. 安装prisma/clien依赖
npm install @prisma/client
配置schema.prisma文件
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model User {
id Int @default(autoincrement()) @id
email String @unique
name String?
}
配置.env 文件
DATABASE_URL="mysql://use:password@localhost:3306/test"
User
: 数据库用户名Password
: 数据库用户密码Host
: 数据库服务器的 ip 或者域名Port
: 数据库服务器的端口Database name
: 数据库名称
创建第一个迁移:
npx prisma migrate dev --name init
nest 常用命令
创建一个curd
模板
nest g resource [name]
创建模块(用于关联路由与服务)
nest generate module user
简写
nest g mo user
创建路由(控制层,可以处理简单的业务和处理请求与响应)
nest generate controller user
简写
nest g co user
建立服务(处理复杂的业务逻辑)
nest generate service user
简写
nest g s user
常见接口取值
@Post('create')
create(@Body() createProjectDto: CreateProjectDto) {
return this.projectService.create(createProjectDto);
}
@Get('findAll')
findAll(@Query('page') page: number, @Query('size') size: number) {
return this.projectService.findAll(+page, +size);
}
@Get(':id')
findOne(@Param('id') id: string) {
return this.projectService.findOne(+id);
}
@Post('update')
update(@Body() bodyData:any,@Body() updateProjectDto: UpdateProjectDto) {
return this.projectService.update(bodyData.id, updateProjectDto);
}
@Delete('delete/:id')
remove(@Param('id') id: string) {
return this.projectService.remove(+id);
}
增加swagger文档
//安装依赖
npm install --save @nestjs/swagger swagger-ui-express
//在main.ts文件中,增加
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
// swagger 配置
const config = new DocumentBuilder()
.setTitle('API文档')
.setDescription('该文档为API文档')
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('swagger', app, document); // 访问文档接 http://localhost:3030/swagger
// 在DTO文件中上使用ApiProperty()添加参数注释:
@ApiProperty({ title: '项目名称' })
name: string;
//在controller 文件中增加@ApiTags、@ApiOperation
@ApiTags('项目管理')
@ApiOperation({ summary: '新增项目' })
@Post('create')
重启项目 输入http://localhost:3030/swagger