【问题标题】:Nestjs: Unable to read 'env' file variablesNestjs:无法读取“env”文件变量
【发布时间】:2021-08-12 01:11:28
【问题描述】:

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

这是应用模块中的代码:

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 {}

【问题讨论】:

  • 请确保根目录下有.env文件
  • 是的,它在根目录@TusharRoy

标签: nestjs nestjs-config


【解决方案1】:

问题是,如果您在应用模块中调用 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.
}

希望这能解决您的问题。

【讨论】:

  • 感谢@Tushar 的解释。
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 2021-02-11
  • 1970-01-01
  • 2019-09-04
  • 2022-06-22
相关资源
最近更新 更多