제가 Nest.js에서 정말 좋아하는 점은 이 프레임워크가 빌드를 위한 완벽한 솔루션을 제공하는 강력하고 완전한 node.js 프레임워크라는 것입니다. 백엔드 애플리케이션.
처음부터 TypeScript 지원이 내장되어 있으며 OOP(객체 지향 프로그래밍), FP(함수형 프로그래밍) 및 FRP(Functional Reactive 프로그래밍), 공식 웹사이트에 나와 있습니다.
처음부터 건축이 포함되어 있는데, 이는 잘 구조화된 건축 프로젝트 작업을 좋아하는 저와 같은 사람에게는 놀라운 일입니다.문서 자체가 매우 인상적이며
환경 변수 설정 방법을 포함한 모든 측면을 다루고 있지만 저에게는
여러 환경을 설정하는 방법을 잘 모르겠습니다.
그리고 문서 옆에 있는 기사를 몇 시간 동안 살펴본 후 Nestjs에 고유한 솔루션을 찾아 공유하고 싶다고 생각했습니다.
먼저
우리 프로젝트에'dev' 및 'prod' 2개의 환경이 필요하다고 가정해 보겠습니다.
환경당 2개의 환경 변수가 필요합니다:
PORT 및 DATABASE_URL.
PORT 및 DATABASE_URL을 저장할 2개의 .env 파일을 만들고 파일 이름을 지정합니다( .env.dev 및 .env.prod.)
PORT=3500 DATABASE_URL="file:./dev.db"`
NODE_ENV라는 env 변수를 생성합니다. 이번에는 이를 .env 파일에 저장하는 대신 dev 및 prod의 시작 스크립트에 삽입합니다.
NODE_ENV 설정은 플랫폼(Windows, Mac, Linux)에 따라 다를 수 있으므로 플랫폼에 따라 환경 변수를 설정할 수 있도록 cross-div 패키지를 설치하겠습니다.
npm을 사용하여 설치
$ npm install --save-dev cross-env
$ pnpm install --save-dev cross-env
"scripts": { "start:dev": "cross-env-shell NODE_ENV=dev nest start --watch", "start:prod": "cross-env-shell NODE_ENV=prod node dist/main", }
npm run start:dev
pnpm run start:dev
NODE_ENV=dev가 있으며 이를 애플리케이션 전체에서 사용할 수 있습니다.
3- Nestjs가 .env 파일을 읽으려면ConfigModule을 사용하여 올바르게 구성해야 하지만 먼저 설치해야 합니다.
npm
$ npm i --save @nestjs/config
$ pnpm i --save @nestjs/config
ConfigModule 사용:
@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: `.env.${process.env.NODE_ENV}`, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
envFilePath: .env 파일의 다른 경로를 지정하는 데 사용됩니다.
또는 기본 .env 파일과 다른 파일을 읽습니다
.env.${process.env.NODE_ENV}는 .env.dev 및로 번역됩니다.
명령을 실행하면
npm run start:prod
.env.${process.env.NODE_ENV}는 .env.prod.로 번역됩니다.
5-환경 변수에 액세스하는 방법
환경 변수에 액세스하려면
ConfigModule을 사용합니다.
main.ts에서 사용할 수 있습니다.
async function bootstrap() { const app = await NestFactory.create(AppModule); const configService = app.get(ConfigService); const port = configService.get('PORT'); await app.listen(port); }
예를 들어
@Injectable() export class AppService { constructor(private configService: ConfigService) {} getHello(): string { return ( this.configService.get<string>('DATABASE_URL') ); } }
위 내용은 Nest.js에서 환경 변수 및 다중 환경을 구성하는 가장 좋은 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!