inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

10-01 Entity 구현

10-01 Entity TypeOrmModule.forRoot 에 entities

해결된 질문

85

작성자 없음

작성한 질문수 0

0

 


@Module({
  imports: [
    BoardsModule, //
    // ProductModule,
    // UsersModule,
    ConfigModule.forRoot(), //
    GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      autoSchemaFile: 'src/commons/graphql/schema.gql',
    }),
    TypeOrmModule.forRoot({
      type: process.env.DATABASE_TYPE as 'mysql',
      host: process.env.DATABASE_HOST,
      port: Number(process.env.DATABASE_PORT),
      username: process.env.DATABASE_USERNAME,
      password: process.env.DATABASE_PASSWORD,
      database: process.env.DATABASE_DATABASE,
      entities: [__dirname + '/apis/**/*.entity.*'],
      synchronize: true,
      logging: true,
    }),
  ],
})
export class AppModule {}

entity 파일들에서 각 entity 파일에 import 할때 절대경로로 입력하면, 오류가나는데 해결방법을 모르겠습니다.

상대경로로 작성시 문제가 해결되었는데 이유를 모르겠습니다.

javascript node.js docker rest-api nestjs

답변 3

0

정영훈

한동안 ... 코드와 먼 삶을 살고 있었더니... vscode settings.json 에 잘못된 설정으로 일어났던 일이였습니다. 감사합니다.

0

노원두

안녕하세요! 영훈님!

영훈님께서 절대경로를 복사하여 넣으셨겠지만, nestjs는 typescript => javascript 변환 과정(컴파일)을 거치고, 그 이후에 변환된 javascript를 실행하게 된답니다!
(변환된 javascript는 /dist 폴더에 저장됨)

image.png

 

따라서, 절대경로를 적용하고 싶은 경우에는, /dist경로내에 컴파일된 js파일 경로로 절대경로를 입력해 주시면 되세요!^^

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 정영훈님.

TypeORM에서 entities 속성을 설정할 때 파일 경로를 지정하는 것이 중요한데, 절대 경로와 상대 경로의 사용에 따라 발생할 수 있는 문제를 이해하는 것이 도움이 될 수 있습니다.

절대 경로 vs 상대 경로

  1. 절대 경로:

    • 절대 경로를 사용하면 프로젝트의 루트 디렉토리에서부터의 경로를 지정하게 됩니다. Node.js 환경에서 절대 경로를 정확히 사용하기 위해선 __dirname과 같은 내장 변수를 사용할 수 있습니다.
    • 실제로는 __dirname을 사용하지만, 절대 경로 방식이 환경에 따라 제대로 해석되지 않을 수 있어 문제가 발생할 수 있습니다. 특히, TS에서 컴파일 후의 구조와 맞지 않을 경우 더욱 그렇습니다.
  2. 상대 경로:

    • 상대 경로는 현재 파일의 위치를 기준으로 경로를 지정합니다. TypeORM 설정에서 상대 경로를 사용할 때 주의해야 하는 점은 실행 시점의 디렉토리 구조와 맞도록 지정해야 한다는 것입니다.

문제 해결 방안

  • 환경 설정 확인: 애플리케이션의 IDLE 환경에서 __dirname이 어떻게 해석되는지 확인해 보세요. 이 값이 기대하는 경로와 일치하는지 검사해 보시는 게 좋습니다.

  • 컴파일된 JS 파일 경로: TypeScript를 컴파일한 후에 JavaScript 파일이 어디에 위치해 있는지 확인하세요. entities 경로 설정이 이 컴파일된 파일들에 대해 유효해야 합니다.

  • Node 환경 변수: Node.js에서 절대 경로를 설정할 때 여러 환경 변수(NODE_PATH 등)를 사용해야 하는 경우도 있습니다. 혹은 프로젝트의 루트 경로가 Node.js 프로세스에서 다르게 인식될 수 있습니다.

아래의 질문과 답변이 유사한 문제를 해결하는데 있어 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

83

2

강의 전체 소스 코드를 받고싶습니다.

0

76

2

fontawesome 사용 문의

0

77

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

81

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

73

2

강의 버전관련 문의입니다

0

102

2

Ubuntu 설치 관련

0

61

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

101

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

130

2

강의 전체 소스코드 받을수있을까요?

0

155

1

도커볼륨 마운트 관련

0

126

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

349

1

self-signed certificate in certificate chain 에러 발생

0

411

1

mongoose 설치 오류

0

141

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

281

2

08-06

0

177

3

구조랑 패턴 관련해서 질문

0

124

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1

싸이월드 과제 쪽이 궁금합니다.

0

147

2