Nestjs - ObjectType
728x90
ObjectType
NestJs의 ObjectType을 이해하기 쉽게 데이터베이스와 유사한 entity 를 만들겠습니다.
폴더 구조는 이전 글을 참고해주세요
restaurants.entity.ts
라는 파일을 만들어 주세요
ObjectType은 데코레이터로써 작동합니다.
GraphQL 의 관점에서 봤을때 Restaurant가 어떻게 생겼는지 묘사합니다.
// entity 란 데이터 베이스 모델을 생각하면 이해하기 쉽다.
import { Field, ObjectType } from '@nestjs/graphql';
// 아직 데이터베이스가 없어서 이해하기 쉽게 특징을 살펴본후 데이터 베이스를 추가할 예정
@ObjectType()
export class Restaurant {
// Restaurant 를 위한 ObjectType 을 만들어 줍니다.
@Field((type) => String)
name: string;
@Field((type) => Boolean, { nullable: true })
isGood: boolean;
}
Field 데코레이터를 graphql 에서 import 합니다.
Field데코레이터의 인자로 들어가는것은 함수여야 합니다. 인자로 들어가는 type을 () 이렇게 쓰거나 is => String으로 써도 아무도 문제 없습니다.
entity 파일을 restaurants/restaurants.resolver.ts
파일에 import 합니다.
import { Resolver, Query } from '@nestjs/graphql';
import { Restaurant } from './entities/restaurant.entity';
@Resolver((of) => Restaurant)
export class RestaurantResolver {
@Query((returns) => Restaurant)
myRestaurant() {
return true;
}
}
Resolver 데코레이터에 entity 에서 export 한 Class를 리턴값으로 넘겨줍니다.
위에 적힌 Query는 오류가 있습니다. Restaurant를 리턴 할것이라고 명시했지만 true를 리턴합니다.
npm run start:dev
http://localhost:3000/graphql
이렇게 기본적인 데이터베이스 모델을 만들었습니다.
코드는 깃허브 주소를 참고하시면 됩니다
728x90
'Side > uber-eats' 카테고리의 다른 글
TypeORM setup 과 Nestjs Config (0) | 2021.05.23 |
---|---|
NestJs Validating ArgsTypes (0) | 2021.05.23 |
Nestjs - InputTypes and ArgumentTypes (0) | 2021.05.22 |
NestJs - Arguments (0) | 2021.05.22 |
Nestjs + react Day1 (0) | 2021.05.19 |
댓글
이 글 공유하기
다른 글
-
NestJs Validating ArgsTypes
NestJs Validating ArgsTypes
2021.05.23 -
Nestjs - InputTypes and ArgumentTypes
Nestjs - InputTypes and ArgumentTypes
2021.05.22 -
NestJs - Arguments
NestJs - Arguments
2021.05.22 -
Nestjs + react Day1
Nestjs + react Day1
2021.05.19