Review/백엔드 - 인스타그램 클론
[Prisma] custom/computed field
조커린
2020. 2. 15. 03:42
데이터 베이스엔 없어도 예를 들면 firstName 과 lastName이 합쳐진 fullName 이라는 데이터 필드를 만들고 싶을 때
(다른 필드와는 관계없이 독자적인 필드)
custom field/ computed field 라는 것을 만든다.
기존의 me.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import { prisma } from "../../../../generated/prisma-client";
export default {
Query: {
me: async (_, __, { request, isAuthenticated }) => {
isAuthenticated(request);
const { user } = request;
const userProfile = await prisma.user({ id: user.id });
const posts = await prisma.user({ id: user.id }).posts();
return {
user: userProfile,
posts
};
}
},
User: {
fullName: parent => {
return `${parent.firstName} ${parent.lastName}`;
}
// 여기서 parent는 상위 resolver , user를 받는다.
}
};
|
cs |
여기서 User란은
이 resolver에 스키마를 따로 작성해주지 않아도 기존에 있던 user 내부에서 서버에서 찾은 다음 없으면 돌아갈 수 있도록 만들어준 것이다.
그래서 따로 computed.js를 만들어서 따로 관리를 해주도록 한다.
1
2
3
4
5
6
7
8
9
10
|
import { prisma } from "../../../generated/prisma-client";
export default {
User: {
fullName: parent => {
return `${parent.firstName} ${parent.lastName}`;
},
}
}
|
cs |
관련 공식 문서는 하단을 읽어보도록 함