Table of Contents
環境変数化とDB接続のモジュール化
綺麗にって漠然と書いたが、
- 環境変数化
DB接続のモジュール作成
を行っていく。
DB接続のモジュール作成
まずは外部モジュール化する。
nest g mo databaseで、データ接続用のモジュールを作成する。
import { Module } from '@nestjs/common';import { TypeOrmModule } from '@nestjs/typeorm';
@Module({ imports: [ TypeOrmModule.forRootAsync({ useFactory: () => ({ type: 'mysql', host: 'localhost', port: 3306, username: 'username', password: 'password', database: 'database-name', entities: [], synchronize: true, }), }), ],})export class DatabaseModule { }次に、app.module.tsの方を編集する。
@Module({ imports: [ DatabaseModule, ],設定をべたでimportしていたので、それを外部モジュールに変換する。
これで外部化は完了。
環境変数化
次に環境変数化していく。
npm install @nestjs/configで、環境変数から読み込むためのパッケージをインストールする。
バージョンは "@nestjs/config": "^2.3.1"だった。
.envファイルをルートに作成し、そこに環境変数を作成する。
DATABASE_USER=testDATABASE_PASSWORD=testDatabaseModuleの読み込みを環境変数に変更する。
@Module({ imports: [ TypeOrmModule.forRootAsync({ imports: [ ConfigModule.forRoot({ envFilePath: [".env"], }), ], useFactory: () => ({ type: 'mysql', host: process.env.DATABASE_HOST, port: Number(process.env.DATABASE_PORT), username: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, entities: [Sample], synchronize: true, }), }), ],})これでいままで通りデータが取得できていれば問題ない。