//Imports
1 @Module({
2 imports: [CacheModule.register({
3 store: redisStore,
4 host: 'localhost',
5 port: 6379,
6 ttl: 60 * 30, // 30 mins
7 })],
8 controllers: [],
9 providers: [SessionService],
10 exports : [SessionService]
11 })
12 export class SessionModule {
13
14 }我有一项为我提供价值的服务。它被命名为EnvService。它有一个get方法,我可以在其中传递key并获取相关的值。
您可以从代码中看到值- localhost和port,ttl。-这些值是在导入模块时设置的。这些值必须来自我的EnvService实例,我已经定义了EnvService,它是可注入的,并且在模块EnvService模块中可用。EnvService也会导出。
imports: [HttpModule],
providers: [EnvService, AuthService],
exports: [EnvService],
})
export class EnvModule {}我正在尝试找到如何在第一行之前添加行-要获取EnvService的实例,请说const EnvService: EnsService =
1 @Module({
2 imports: [CacheModule.register({
3 store: redisStore,
4 host: envService.get('REDIS_HOST),
5 port: envService.get('REDSIS_PORT'),
6 ttl: envService.get(TTL)
有什么建议吗?或者它必须以不同的方式来完成。
发布于 2021-09-26 18:30:01
我错过了去看CacheModule well。它里面有registerAsync方法。这是link - https://docs.nestjs.com/techniques/caching#different-stores检查“异步配置”部分。
所以我的解决方案是:
CacheModule.registerAsync({
imports: [EnvModule],
useFactory: async envService: EnvService) => ({
store: redisStore,
host: envService.get('REDIS_HOST),
port: envService.get('REDSIS_PORT'),
ttl: envService.get(TTL)
}),
inject: [EnvService],
});https://stackoverflow.com/questions/69333393
复制相似问题