[TIL] NestJS 공부 43일차

정인교·2021년 7월 27일
0

TIL(Today I Learned)

목록 보기
54/67
post-thumbnail

이번엔 어제 마무리 못지은 TypeORM을 마무리 짓도록 하겠습니다.

사용할 컨트롤러 부분에 코드를 추가해줍시다!

사용하기 전에 생성자가 타입을 설정해주는 것이 중요하므로 생성자 타입을 수정해주는 코드를 적어주고

constructor(private readonly userdataservice: UserdataService) {}

데이터가 많을 경우 데이터 받아오는 과정에서 시간이 걸릴 수 있으므로 비동기 처리를 시켜주게 해줍시다!

    @Get()
    async getdata() {
        const data = await this.userdataservice.getData()
        return data;
    }

그리고 AppModule에서 일어난 에런데.. 종속성을 찾지 못하는 에러

Nest can't resolve dependencies of the LoginController (?). Please make sure that the argument UserdataService at index [0] is available in the AppModule context.

이런 에러가 발생한다면 에러 명만 읽고 복붙해서 찾지말고 아래에 solution제공도 있으니 꼭 확인하세요..ㅠ

그리고 app.module부분에 정보들이 들어간게 아쉽긴한데 나중에 env파일을 이용하여 변경하도록 하겠습니다 ㅎ

어쨌든 이렇게 완성할 수 있었습니다! 나중에 잊어버려서 헤매지 않게 간단하게 요약하고 가겠습니다!

요약

userdata.service - 생성자 유의한 후 메서드 추가

    @InjectRepository(Userdata)
    private usersRepository: Repository<Userdata>,
  ) {}

userdata.module - 제공자 사용

imports: [TypeOrmModule.forFeature([Userdata])],
providers:[UserdataService],
exports: [TypeOrmModule]

login.controller - 생성자 사용

constructor(private readonly userdataservice: UserdataService) {}

app.module - providers에 userdataservice추가 및 forRoot 지정

@Module({
imports: [
  TypeOrmModule.forRoot({
    type: 'mysql',
    host: '127.0.0.1',
    port: 3306,
    username: 'root',
    password: '0112',
    database: 'test',
    entities: [Userdata],
    synchronize: true,
  }),
  DashboardModule, LoginModule, UserdataModule],
controllers: [AppController, DashboardController, LoginController],
providers: [AppService, DashboardService,UserdataService],
})
profile
백엔드 개발자 정인교입니다!

0개의 댓글