데이터 베이스엔 없어도 예를 들면 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 |
관련 공식 문서는 하단을 읽어보도록 함
'Review > 백엔드 - 인스타그램 클론' 카테고리의 다른 글
[Prisma] @relation onDelete 정의 (0) | 2020.02.17 |
---|---|
[Prisma & GraphQL] enum 으로 기능 확장해 사용하기 (0) | 2020.02.17 |
[Prisma] _some, _every, _none, follow 여부 검사 (0) | 2020.02.15 |
[prisma] connection, $fragment (0) | 2020.02.13 |
[Prisma] $exists (0) | 2020.02.11 |