Reputation: 313
I am unable to read env file variables in the App Module. It's really strange that I those variables are accessable in "main.ts" file.
Here's the code in App Module:
console.log(process.env.DB_URI); // logs undefined
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env'],
isGlobal: true,
cache: true,
}),
UsersModule,
FoodItemsModule,
MacroCalculatorModule,
MongooseModule.forRoot(process.env.DB_URI),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Upvotes: 0
Views: 3306
Reputation:
The thing is if your calling process.env
in your app module it would only be available once your Nest dependencies are intialized.
Example:
`console.log(process.env.DB_URI);` // logs undefined because your dependencies are not
//intialized
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env'],
isGlobal: true,
cache: true,
}),
UsersModule,
FoodItemsModule,
MacroCalculatorModule,
MongooseModule.forRoot(process.env.DB_URI),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {
console.log(process.env.DB_URI); // THIS WILL LOG YOUR INFORMATION, because it is
// called after dependecies are intialized.
}
Hope this clears your question.
Upvotes: 2