Nestjs Dotenv变量未定义

Nestjs Dotenv变量未定义,nestjs,dotenv,Nestjs,Dotenv,我有一个模块(auth模块),我在其中注册JwtModule: JwtModule.register({ secret: process.env.SECRET_KEY, signOptions: { expiresIn: '60m' }, }), 寄存器函数如下所示:静态寄存器(选项:JwtModuleOptions):DynamicModule JwtModule在节点_模块(jwt.module.js)中定义 在app.module.ts中,我有 Confi

我有一个模块(auth模块),我在其中注册JwtModule:

JwtModule.register({
      secret: process.env.SECRET_KEY,
      signOptions: { expiresIn: '60m' },
    }),
寄存器函数如下所示:
静态寄存器(选项:JwtModuleOptions):DynamicModule

JwtModule在节点_模块(jwt.module.js)中定义

在app.module.ts中,我有

ConfigModule.forRoot({
      isGlobal: true,
    }),
在节点模块文件(console.log(process.env.SECRET\u KEY))中未定义process.env.SECRET\u密钥,但定义了signOptions:{expiresIn:'60m'}


如果我尝试从.env写入控制台密钥,则其他地方都已定义,但节点中的模块未定义。

ConfigModule
ConfigService
运行
dotenv
config()
方法,但所有修饰符同时运行,因此尚未调用
config()
方法。您可以改为使用异步注册,并像这样使用
ConfigService

JwtModule.registerAsync({
inject:[ConfigService],
useFactory:(配置:配置服务)=>({
secret:config.get('secret\u KEY')
})
})

确保在应用程序模块构造函数中调用ConfigService:

 export class AppModule {
  constructor(private configService: ConfigService) {}
}
 export class AppModule {
  constructor(private configService: ConfigService) {}
}