[NestJS] .env 경로 설정
https://www.mongodb.com/ko-kr/docs/manual/tutorial/install-mongodb-community-with-docker/
Docker를 사용하여 MongoDB Community 설치 - MongoDB 매뉴얼 v7.0
공식 MongoDB 커뮤니티 이미지를 사용하여 MongoDB 커뮤니티 에디션을 Docker container로 실행할 수 있습니다. MongoDB 배포서버를 실행하기 위한 Docker 이미지는 다음과 같은 경우에 유용합니다.신속한 배
www.mongodb.com
몽고디비와 도커 연결을 위해 명령어를 입력해준다.
docker pull mongodb/mongodb-community-server:latest
docker run --name mongodb -p 27017:27017 -d mongodb/mongodb-community-server:latest
nestJS 환경에서 설정하였으며 아래와 같이 env 파일을 이용해 연결해주었다.
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['stage.dev.env'],
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => {
return {
type: 'mongodb',
url: configService.get('DB_URL'),
port: configService.get('DB_PORT'),
autoLoadEntities: true,
synchronize: true,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
};
},
}),
],
})
export class AppModule {}
env 파일을 연결할 때 .env가 들어간 파일 이름을 그대로 명시해주어도 되며,
상대경로, 절대경로 모두 인식 가능하다.
기본 이름일 때는 .env 로 명명 하는 경우가 많으나 위의 경우 처럼 'stage.dev.env' 가 이름인 경우 .stage.dev.env 가 아닌 stage.dev.env로 명명해주어야 했다..!
만약 .env가 인식되지 않는 경우
NestJS에서 MongoDB를 연결할 때 아무 환경 변수도 설정하지 않았다면, 기본적으로 `localhost:27017`로 연결된다.
NestJS에서 MongoDB와의 연결은 `@nestjs/mongoose` 또는 `@nestjs/typeorm` 패키지를 사용해 이루어 지는데, 이 패키지들은 내부적으로 MongoDB 클라이언트를 사용하여 기본적으로 `mongodb://localhost:27017/test` 경로로 연결하려고 한다.
여기서 `/test`는 기본적으로 사용하는 데이터베이스 이다.
만약 환경 변수나 다른 설정을 따로 지정하지 않았다면, 이런 기본 설정값으로 연결될 수 있다.