npm install @prisma/client prisma
prisma 설정 파일 만들기
npm exec prisma init

// .env
// 나의 mysql정보를 넣으면 됨
DATABASE_URL="mysql://<DB_USER>:<DB_PASSWORD>@<DB_HOST>:<DB_PORT>/<DB_NAME>"
schema.prisma 수정
//prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
Member 모델 추가
// prisma/schema.prisma
model Member {
id Int @id @default(autoincrement())
name String? @db.VarChar(20)
gender String? @db.VarChar(10)
age Int?
address String? @db.VarChar(40)
specAddress String? @map("spec_address") @db.VarChar(40)
phoneNum String? @map("phone_num") @db.VarChar(13)
status String? @db.VarChar(15)
inactiveDate DateTime? @map("inactive_date") @db.DateTime(6)
socialType String? @map("social_type") @db.VarChar(10)
createdAt DateTime? @map("created_at") @db.DateTime(6)
updatedAt DateTime? @map("updated_at") @db.DateTime(6)
email String? @db.VarChar(50)
point Int?
@@map("member")
}
prisma의 schema 파일 수정시 자동으로 서버 재시작하도록 설정
// package.json
// nodemon 수정
"dev": "nodemon -e js,json,prisma --exec \"prisma generate && node src/index.js\""
다른 코드 전체에서 공유하도록 설정
// src/dbConfig.js
import { PrismaClient } from "@prisma/client";
export const prisma = new PrismaClient();
데이터 하나 찾기
await prisma.member.findFirst({
where: { id: 1 }
});
데이터 생성하기
await prisma.user.create({
data: {
name: "엘빈",
email: "test@example.com",
...,
}
});
addUser 함수를 ORM을 사용하도록 수정
// src/member.repository.js
**import { prisma } from "../db.config.js"; // prisma 임포트**
export const addUser = async (data) => {
const user = await prisma.user.findFirst({ where: { email: data.email } });
if (user) {
return null;
}
const created = await prisma.user.create({ data: data });
return created.id;
};
addMember를 ORM으로 바꾼 후 첫 API Test
