liaoliaots/nestjs-redis

The redis client-provider 'Symbol(default)' was not found in the application context.

undownding opened this issue · 4 comments

RedisError: The redis client-provider 'Symbol(default)' was not found in the application context.
    at RedisManager.getClient (/data/projects/portal-be/node_modules/@liaoliaots/nestjs-redis/dist/redis/redis-manager.js:26:19)
    at new SmsService (/data/projects/portal-be/dist/app/sms/sms.service.js:24:35)
    at Injector.instantiateClass (/data/projects/portal-be/node_modules/@nestjs/core/injector/injector.js:300:19)
    at callback (/data/projects/portal-be/node_modules/@nestjs/core/injector/injector.js:48:41)
    at async Injector.resolveConstructorParams (/data/projects/portal-be/node_modules/@nestjs/core/injector/injector.js:124:24)
    at async Injector.loadInstance (/data/projects/portal-be/node_modules/@nestjs/core/injector/injector.js:52:9)
    at async Injector.loadProvider (/data/projects/portal-be/node_modules/@nestjs/core/injector/injector.js:74:9)
    at async Promise.all (index 4)
    at async InstanceLoader.createInstancesOfProviders (/data/projects/portal-be/node_modules/@nestjs/core/injector/instance-loader.js:44:9)
    at async /data/projects/portal-be/node_modules/@nestjs/core/injector/instance-loader.js:29:13
    at async Promise.all (index 16)
    at async InstanceLoader.createInstances (/data/projects/portal-be/node_modules/@nestjs/core/injector/instance-loader.js:28:9)
    at async InstanceLoader.createInstancesOfDependencies (/data/projects/portal-be/node_modules/@nestjs/core/injector/instance-loader.js:18:9)
    at async /data/projects/portal-be/node_modules/@nestjs/core/nest-factory.js:93:17
    at async Function.asyncRun (/data/projects/portal-be/node_modules/@nestjs/core/errors/exceptions-zone.js:22:13)
    at async NestFactoryStatic.initialize (/data/projects/portal-be/node_modules/@nestjs/core/nest-factory.js:91:13)
    at async NestFactoryStatic.create (/data/projects/portal-be/node_modules/@nestjs/core/nest-factory.js:37:9)
    at async bootstrap (/data/projects/portal-be/dist/index.js:17:17)

Need some other config?

Could you please describe the RedisModule configuration and the usage of the @InjectRedis() or RedisManager?

    RedisModule.forRootAsync({
      imports: [ConfigModule],
      inject: [ConfigService],
      useFactory: (configService: ConfigService) => configService.get('REDIS_URL'),
    }),

.env

REDIS_URL=redis://192.168.112.1/1

migratied from nestjs 7

  constructor(
    redisManager: RedisManager,
    ...
  ) {
    this.redis = redisManager.getClient()
  }

Please follow the documentation:

RedisModule.forRootAsync({
    imports: [ConfigModule],
    inject: [ConfigService],
    useFactory: (configService: ConfigService) => ({ config: { url: configService.get('REDIS_URL') } }),
}),

works well, thanks.