3_Swagge|prisma-orm
Hello World
生成接口文档
访问:/api
prisma => ORM数据库
安装prisma:
1.npm install -D prisma
2.生成模式文件和环境变量
2.npx prisma init
3. 创建一个model
model User{
  id String @id @default(uuid())
  name String @unique  //唯一值
  email String @unique
  password String 
  createTime DateTime @default(now()) @map("create_time")
  updatedTime DateTime @updatedAt
  //  更新数据表名字
  @@map("user")
}
4. 将Prisma模式和数据表映射,创建数据库
npx prisma db pull
- 安装生成 Prisma Client
npm install @prisma/client
npx prisma generate
CRUD
  async getHello() {
    const list = await sql.user.findMany();
    return list;
  }
  async create(datas) {
    const newUser = await sql.user.create({
      data: datas
    }
    )
    return newUser
  }
  async update(id, data) {
    const newsUser = await sql.user.update({
      where: {
        id
      },
      data: data
    })
    return newsUser;
  }
  async delete(id){
   const user=sql.user.delete({
      where:{
        id
      }
    })
    return user
  }
创建prisma全局服务
npx nest generate module prisma
npx nest generate service prisma
prisma.service.ts
import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@Injectable()
export class PrismaService extends PrismaClient
  implements OnModuleInit, OnModuleDestroy {
  async onModuleInit() {
    await this.$connect();
  }
  async onModuleDestroy() {
    await this.$disconnect();
  }
}
prisma.module.ts
import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Module({
  providers: [PrismaService],
  exports: [PrismaService],
})
export class PrismaModule {}
使用@Global() 声明为全局模块,前提是在根模块里注册
使用
import { Injectable } from '@nestjs/common';
import { PrismaService } from 'src/prisma/prisma.service'
@Injectable()
export class AppService {
  constructor(private prisma:PrismaService){}
  getHello(): any {
    return this.prisma.user.findMany({
      where:{
        name:"test"
      }
    });
  }
}
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号