IT
@Prisma Client 활용 예시 / type
agnusdei1207
2023. 8. 10. 00:48
반응형
SMALL
npm i @prisma/client
1. 설치 CLI
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
enum SocialProvider {
KAKAO
NAVER
APPLE
GOOGLE
}
model OAuthAccount {
id String @id @default(uuid())
provider SocialProvider @default(KAKAO)
createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id])
userId String
}
2. 기본적인 Prisma client 구성 예시
import { SocialProvider } from "@prisma/client";
export interface IOAuthAccountDTO {
id: string;
provider: SocialProvider;
createdAt: Date;
userId: string;
}
3. 필요한 enum 혹은 model 만 import 하여 사용 가능
import { IOAuthAccountDTO } from '@namdorang/interface';
import { Exclude, Expose } from 'class-transformer';
import { SocialProvider } from "@prisma/client";
@Exclude()
export class OAuthAccountDTO implements IOAuthAccountDTO {
@Expose()
id: string;
@Expose()
provider: SocialProvider;
@Expose()
createdAt: Date;
@Expose()
userId: string;
}
4. 위의 interface 를 DTO 로 구현한 모습 (마찬가지로 필요한 enum만 가져와서 type으로 사용)
반응형
LIST