我有一个模块(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,
}),node_modules文件(console.log( process.env.SECRET_KEY ))中未定义process.env.SECRET_KEY,但定义了signOptions:{ expiresIn:'60m‘}。
如果我尝试从.env向控制台写入SECRET_KEY,其他地方都是定义的,但在node_modules中是未定义的。
发布于 2020-05-22 05:24:26
ConfigModule的ConfigService运行dotenv的config()方法,但是所有修饰器都同时运行,所以还没有调用config()方法。
JwtModule.registerAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
secret: config.get('SECRET_KEY')
})
})发布于 2020-05-22 05:32:15
请确保在App Module构造函数中调用ConfigService:
export class AppModule {
constructor(private configService: ConfigService) {}
}https://stackoverflow.com/questions/61944040
复制相似问题