Dotenv 变量未定义
Dotenv variable is undefined
我有一个模块(auth 模块),我在其中注册了 JwtModule:
JwtModule.register({
secret: process.env.SECRET_KEY,
signOptions: { expiresIn: '60m' },
}),
注册函数如下所示:static register(options: JwtModuleOptions): DynamicModule;
JwtModule 定义在node_modules (jwt.module.js)
let JwtModule = JwtModule_1 = class JwtModule {
static register(options) {
console.log(options);
console.log(process.env.SECRET_KEY);
return {
module: JwtModule_1,
providers: jwt_providers_1.createJwtProvider(options)
};
}
在app.module.ts我有
ConfigModule.forRoot({
isGlobal: true,
}),
process.env.SECRET_KEY 在 node_modules 文件中未定义 (console.log(process.env.SECRET_KEY)),但定义了 signOptions: { expiresIn: '60m' }。
如果我尝试从 .env 写入控制台 SECRET_KEY,其他任何地方都已定义,但在 node_modules 中未定义。
ConfigModule
的ConfigService
运行sdotenv
的config()
方法,但是所有装饰器同时运行 , 所以 config()
方法还没有被调用。您可以改用异步注册并像这样使用 ConfigService
JwtModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
secret: config.get('SECRET_KEY')
})
})
确保在应用模块构造函数中调用配置服务:
export class AppModule {
constructor(private configService: ConfigService) {}
}
我有一个模块(auth 模块),我在其中注册了 JwtModule:
JwtModule.register({
secret: process.env.SECRET_KEY,
signOptions: { expiresIn: '60m' },
}),
注册函数如下所示:static register(options: JwtModuleOptions): DynamicModule;
JwtModule 定义在node_modules (jwt.module.js)
let JwtModule = JwtModule_1 = class JwtModule {
static register(options) {
console.log(options);
console.log(process.env.SECRET_KEY);
return {
module: JwtModule_1,
providers: jwt_providers_1.createJwtProvider(options)
};
}
在app.module.ts我有
ConfigModule.forRoot({
isGlobal: true,
}),
process.env.SECRET_KEY 在 node_modules 文件中未定义 (console.log(process.env.SECRET_KEY)),但定义了 signOptions: { expiresIn: '60m' }。
如果我尝试从 .env 写入控制台 SECRET_KEY,其他任何地方都已定义,但在 node_modules 中未定义。
ConfigModule
的ConfigService
运行sdotenv
的config()
方法,但是所有装饰器同时运行 , 所以 config()
方法还没有被调用。您可以改用异步注册并像这样使用 ConfigService
JwtModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
secret: config.get('SECRET_KEY')
})
})
确保在应用模块构造函数中调用配置服务:
export class AppModule {
constructor(private configService: ConfigService) {}
}