Prisma Client란?
js코드로, prisma를 통한 DB 수정작업을 할 수 있도록 해주는 도구
// prisma 프로젝트 생성시 자동으로 설치됨 ( node_modules/prisma/prisma-client 위치 )
Prisma Client 설치
npm install @prisma/client
Prisma Client 사용법
// PrismaClient 가져오기 위한 모듈 불러오기
const { PrismaClient } = require("@prisma/client");
// PrismaClient 만들기
const client = new PrismaClient();
// 새로운 Book 만들기! ( Prisma 모델을 통해 만들어진 "book" 함수 사용 )
const newbook = client.book.create({
data: {
title:"명상록"
}
})
// newbook에는 Prisma를 통해 만들어진 Book 객체가 저장된다!
Prisma Client 업데이트마다 사용법 찾기
// prisma DB설정, 모델 설정 후에 실행해야 한다.
npx prisma generate
Prisma Client 명령어 사용법 찾기
Prisma 사용시 유의사항
1. 일치하는 정보 찾아서 데이터 전부 가져오기
// resovler.js
export default {
User: {
totalFollowing: ({id}) => client.user.findMany({
where: {
id,
},
}).following(),
// .following()을 사용하면, "id"가 팔로우하고 있는 모든 정보를 가져온다.
}
2. 일치하는 정보 찾아서 몇개인지 세기만 하기
// resovler.js
export default {
User: {
// count()를 사용하면, 정보를 가져오지 않고 갯수만 셀 수 있다. ( 쓸데없는 작업 안함 )
totalFollowing: ({id}) => client.user.count({
where: {
// followers 목록에, "id"가 들어있는 사람들의 모든 정보를 전부 가져온다.
followers:{
some: {
id,
},
},
},
}),
}
3. 특정 정보만 선택해서 가져오기
// resovler.js
export default {
seeProfile: (_, {id}) => client.user.findUnique({
where: {
id,
},
// select 사용해서 username 정보만 가져오게 하기
select: {
username: true,
}
}
4. 정보 추가해서 가져오기 ( 데이터베이스에 없고, resolver에만 존재하는 정보 )
// resovler.js
export default {
seeProfile: (_, {id}) => client.user.findUnique({
where: {
id,
},
// include 사용해서 isMe 정보 추가하여 가져오게 하기
include: {
isMe: true,
}
}
반응형