Typescript로 아주 간단한 구성 서비스 만들기

NodeJS 애플리케이션으로 작업하는 경우 코드 기반 전체에 process.env.VARIABLE 문이 있을 수 있습니다. 애플리케이션을 구성하는 가장 간단한 방법은 dotenv를 설치하고 프로젝트의 루트 폴더에 멋진 .env 파일을 만드는 것입니다.

그러나 이 접근 방식에는 몇 가지 함정이 있으며 오류가 발생하기 쉽습니다. 해당 process.env 포트를 설정하지 않으면 어떻게 됩니까? 아마도 기본값(아마도 3000?)이 있을 수 있지만 이러한 유형을 검색하려면 응용 프로그램을 실행해야 합니다.

거의 모든 문제에 대해 typescript로 동일한 문제가 해결되었습니다. 정적 타이핑의 도움을 받으면 몇 가지 오류를 훨씬 더 빨리 발견할 수 있습니다. 즉, Typescript를 사용하여 구성에 액세스하는 형식 안전 방식을 어떻게 사용할 수 있습니까?

코드를 보여주세요!



짧은 스니펫을 살펴보십시오.

export class EnvironmentService<Environment> {

  public constructor(
   private readonly variables: Environment
  ) {
    // some logic to assign process.env to this.variables
    // you can use, for instance, 
    this.variables = Joi.attempt<Environment>(process.env))
  }

  public get<T>(name: keyof Environment) {
    return <T><unknown>this.variables[name];
  }
}


간단히 말해서,
  • 먼저 환경에 대한 인터페이스를 정의해야 합니다.
  • 그런 다음 새 개체를 인스턴스화할 때 EnvironmentService 클래스에 유형 매개 변수로 전달합니다.
  • 마지막으로 class-validator, Joi 또는 선택한 라이브러리와 같은 것을 사용하여 process.env 개체에 모든 필수 변수가 있는지 확인하고 해당 값을 variables 특성에 할당합니다.

  • 이러한 간단한 단계 후에 메소드get를 사용하여 선택을 안내하는 typescript의 도움으로 가능한 모든 환경 변수를 가져올 수 있습니다. 필요한 경우 값을 원하는 유형으로 캐스트할 수 있습니다.



    결론



    그게 다야! 간단한 콘텐츠가 마음에 든다면 도움이 될 수 있는 사람에게 댓글을 달고 공유하는 것을 잊지 마세요. 또한, 영어로 무엇인가를 쓰려는 나의 첫 번째 시도입니다. 잘못된 것을 발견하면 Twitter( )로 저에게 메시지를 보내주세요.

    참조


  • Typescript Handbook: Keyof
  • 좋은 웹페이지 즐겨찾기