반응형
Nestjs 공식 홈페이지를 살펴보면 Code First 방식을 확인할 수 있습니다.
저희는 CodeFirst 방식을 사용할 것이기 때문에 아래와 같이 코드를 추가해줍니다.
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { join } from 'path';
@Module({
imports: [
GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema.gql'),
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
위와 같이 코드를 추가하고 이제 테스트 모듈을 만들어 Resolver 와 Query 를 만들어줍니다.
nest g mo users
Users 모듈을 만들기 위해 위 명령어를 사용해줍니다.
그러면 자동으로 app.module.ts 에 Users 모듈이 import 된 것을 확인하실 수 있습니다.
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { join } from 'path';
import { UsersModule } from './users/users.module';
@Module({
imports: [
GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema.gql'),
}),
UsersModule,
],
controllers: [],
providers: [],
})
export class AppModule {}
이렇게 새로운 모듈을 만들면 알아서 추가해주는 것이 Nestjs 의 하나의 장점인 것 같습니다.
Users 폴더가 생기게 되는데 여기에 users.resolver.ts
파일을 만들어줍니다.
하나의 모듈은 크게 module
, resolver
, service
구성이 되는데, Resolver 는 Query, mutation 을 작성하는 부분이고 Service는 로직을 작성하는 부분입니다.
users.resolver.ts
import { Resolver, Query } from '@nestjs/graphql';
@Resolver()
export class UserResolver {
@Query((type) => String)
helloWorld(): string {
return 'hello World';
}
}
테스트를 위해 위와 같은 resolver 를 만들어봅니다.
Resolver 를 만들었으니 Module 에 연결해주어야겠죠.
users.module.ts
import { Module } from '@nestjs/common';
import { UserResolver } from './users.resolver';
@Module({
providers: [UserResolver],
})
export class UsersModule {}
module 은 providers 로 전달해줄 수 있습니다.
실행
localhost:3000/graphql 로 접속하시면 아래와 같이 Query 가 생성된 것을 확인하실 수 있습니다.
이렇게 첫 Query 를 만들어보았는데요.
다음에는 Service 코드를 작성하는 방법에 대해서 정리해보겠습니다.
'웹 개발 > Nestjs' 카테고리의 다른 글
Nestj로 서버만들기 (1) - 프로젝트 생성 (0) | 2021.01.09 |
---|
댓글