inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

implements, injectable(DI) 알아보기

개발환경과 배포환경시 다른 의존성을 주입하는 예제

해결된 질문

288

최석우

작성한 질문수 20

0

질문보다는 코드 리뷰에 가까운데
강의 내용중에 나온 테스트 코드와 실제 배포시 다르게 적용할 경우 예제를 작성해 보았습니다.
이해한 내용이 맞는지 또는 보안이나 수정할 만한 내용이 있는지 알려주시면 감사합니다.

//app.service.ts

import { Injectable } from '@nestjs/common';

export interface IAppService {
  getSecret(): string;
}

@Injectable()
export class AppService implements IAppService {
  getSecret(): string {
    return '실제 배포 환경';
  }
}

@Injectable()
export class Test_AppService implements IAppService {
  getSecret(): string {
    return '개발 테스트 환경';
  }
}
//app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService, Test_AppService } from './app.service';
import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [ConfigModule.forRoot({ isGlobal: true })],
  controllers: [AppController],
  providers: [
    {
      provide: 'AppService',
      useClass:
        process.env.NODE_ENV === 'production' ? AppService : Test_AppService,
    },
  ],
})
export class AppModule {}
//app.controller.ts

import { Controller, Get, Inject } from '@nestjs/common';
import { IAppService } from './app.service';

@Controller()
export class AppController {
  constructor(@Inject('AppService') private readonly appService: IAppService) {}

  @Get()
  getHello(): string {
    return this.appService.getSecret();
  }
}

node.js express nestjs typeorm

답변 1

1

제로초(조현영)

그렇게 하시면 됩니다.

하나 보완할 만한 것은 process.env.NODE_ENV도 configService를 inject하는 식으로 수정해서 configService.get('NODE_ENV')로 바꾸면 좋을 것 같습니다.

강의자료는 어디서 다운받나요?

0

114

4

질문 있습니다.

0

298

3

(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성

0

154

2

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

168

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

152

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

297

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

232

2

RxJS 디버깅 질문 있습니다.

0

189

3

CacheManager에 대해 질문 있습니다.

0

174

2

로깅은 어떻게 하는게 효율적일까요?

0

224

1

CORS 질문 있습니다.

0

418

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

449

1

401 unauthorized문제

0

288

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

252

2

CORS 에러 질문 있습니다.

0

319

2

배포 환경 DB 연결 질문 있습니다.

0

411

2

socket io 미 연결 문제 (nest & flutter)

1

1154

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

454

1