반응형
일단 Nest.js에서 env를 사용하기 위해서 dotenv 라이브러리를 다음과 같이 설치해줍니다.
npm install dotenv
만약 클러스터를 이용하고 있다면, 기존 포스트를 참고해 줍니다.
https://roslyndev.tistory.com/33
이제 .env파일을 만들어 줍니다.
각각 파일에 내가 필요로 하는 환경 요소들을 동일하게 넣어줍니다.
다음 내용은 예시니까, 참고만 하세요.
NODE_ENV=development
DATABASE_HOST=localhost
DATABASE_PORT=1433
DATABASE_USERNAME=user_dev
DATABASE_PASSWORD=password_dev
DATABASE_NAME=mydatabase_dev
DATABASE_SYNC=false
이제 TypeORM에서 분리된 환경을 적용해 볼까요?
app.module.ts 파일을 열어서 다음과 같이 수정해 줍니다.
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './entities';
import { UserService } from './user/user.service';
import { UserController } from './user/user.controller';
@Module({
imports: [
TypeOrmModule.forRoot({
logging:false,
type: 'mssql',
host: String(process.env.DATABASE_HOST),
port: Number(process.env.DATABASE_PORT),
username: String(process.env.DATABASE_USERNAME),
password: String(process.env.DATABASE_PASSWORD),
database: String(process.env.DATABASE_NAME),
entities: [User],
synchronize: Boolean(process.env.DATABASE_SYNC),
extra: {
options: {
encrypt: false,
TrustServerCertificate: true,
},
},
}),
TypeOrmModule.forFeature([User]),
],
controllers: [AppController, UserController],
providers: [AppService, UserService],
})
export class AppModule {}
이제 npm run start 명령으로 swagger가 잘 동작하는지 확인해 줍니다.
네, 정상동작이 확인되었습니다.
만약 배포환경에서 다른 환경을 원한다면, .env.production 파일을 만들어서 동일한 조건에서 배포환경 값을 입력해 두고, 빌드를 하기 전에, .env.production 파일을 .env 파일로 변경하여 적용하도록 합니다.
반응형
'개발이야기 > Node&Nest' 카테고리의 다른 글
Nest.js 에서 JWT 인증 구현하기 (0) | 2024.01.22 |
---|---|
Nest.js 에서 Swagger에 Authorize 활성화 하기 (0) | 2024.01.19 |
Nest.js를 Docker로 배포하기 (0) | 2024.01.18 |
Nest.js + TypeORM 을 적용해보자. (0) | 2024.01.17 |
Nest.js 에서 cluster로 요청 격리하기 (0) | 2024.01.17 |