0

我无法在 App 模块中读取 env 文件变量。很奇怪,我可以在“main.ts”文件中访问这些变量。

这是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 {}
4

1 回答 1

2

问题是,如果您在应用程序模块中调用process.env,则只有在初始化 Nest 依赖项后才能使用它。

例子:

`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.
}

希望这可以解决您的问题。

于 2021-05-23T14:49:13.020 回答