본문 바로가기
웹 개발/Nestjs

Nestj로 서버만들기 (2) - 프로젝트 셋팅

by 주식 키우는 개발자 2021. 1. 9.
반응형

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 파일을 만들어줍니다.

image

 

하나의 모듈은 크게 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 가 생성된 것을 확인하실 수 있습니다.

image

이렇게 첫 Query 를 만들어보았는데요.

다음에는 Service 코드를 작성하는 방법에 대해서 정리해보겠습니다.

댓글