Je travaille sur ma première application Nestjs, qui fonctionnait bien avec la base de données codée à la base de la bande de connexion en app.module.ts
.
Mais ensuite selon nos exigences, je devais choisir les valeurs de configuration de la base de données à partir de fichiers d'environnement. Pour cela, j'ai suivi la documentation de configuration sur le site Web de la documentation Nestjs https://docs.nestjs.com/techniques/configuration
Mais le problème est que je dois utiliser les variables .env dans le même fichier pour la connexion de base de données, ce qui échoue.
Voici mon code d'origine qui fonctionnait bien:
@Module({
imports: [
MongooseModule.forRoot(`mongodb+srv://myusername:[email protected]?retryWrites=true&w=majority&db=dbname`, { useNewUrlParser: true, dbName: 'dbname' }),
ProductModule,
CategoryModule,
],
controllers: [
AppController,
HealthCheckController,
],
providers: [AppService, CustomLogger],
})
Maintenant, je voulais choisir ces valeurs de base de données de fichiers .env, qui sont comme local.env
, dev.env
etc. En fonction de l'environnement. Maintenant, mon code ne fonctionne pas:
@Module({
imports: [
ConfigModule.forRoot({ envFilePath: `${process.env.NODE_ENV}.env` }),
MongooseModule.forRoot(`mongodb+srv://${ConfigModule.get('DB_USER')}:${ConfigModule.get('DB_PASS')}@myhost.net?retryWrites=true&w=majority&db=dbname`, { useNewUrlParser: true, dbName: 'dbname' }),
ProductModule,
CategoryModule,
],
controllers: [
AppController,
HealthCheckController,
],
providers: [AppService, CustomLogger],
})
En utilisant le package Nestjs/Config:
nPM Installez @ Nestjs/Config
Après avoir installé le package, dans le module d'application (fichier app.module.ts):
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ConfigModule.forRoot()],
})
export class AppModule {}
Après que les fichiers .env peuvent être accessibles dans toute l'application. Supposons que votre fichier .env ressemble à ceci.
DB_USER=mohit
pour accéder à db_user variable utilisation process.env.db_user