假设我的模块定义如下:
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.register({
// Use ConfigService here
secretOrPrivateKey: 'secretKey',
signOptions: {
expiresIn: 3600,
},
}),
PrismaModule,
],
providers: [AuthResolver, AuthService, JwtStrategy],
})
export class AuthModule {}
现在如何从这里的
secretKey
中获取 ConfigService
? 最佳答案
你必须使用 registerAsync
,所以你可以注入(inject)你的 ConfigService
。有了它,您可以导入模块、注入(inject)提供程序,然后在返回配置对象的工厂函数中使用这些提供程序:
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
secretOrPrivateKey: configService.getString('SECRET_KEY'),
signOptions: {
expiresIn: 3600,
},
}),
inject: [ConfigService],
}),
有关更多信息,请参阅 async options docs 。