Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在NestJS中创建RedisService?_Redis_Nestjs_Ioredis - Fatal编程技术网

如何在NestJS中创建RedisService?

如何在NestJS中创建RedisService?,redis,nestjs,ioredis,Redis,Nestjs,Ioredis,我正在使用nest7.1.5和ioredis4.17.3。我正在尝试创建一个RedisService,然后将其注入。 以下是我到目前为止的情况: redis.providers.ts import { Provider } from '@nestjs/common'; import Redis from 'ioredis'; import { REDIS_CLIENT } from './redis.constants'; export type RedisClient = Redis.Red

我正在使用nest7.1.5和ioredis4.17.3。我正在尝试创建一个RedisService,然后将其注入。 以下是我到目前为止的情况:

redis.providers.ts

import { Provider } from '@nestjs/common';
import Redis from 'ioredis';
import { REDIS_CLIENT } from './redis.constants';

export type RedisClient = Redis.Redis;

export const redisProviders: Provider[] = [
    {
        useFactory: (): RedisClient => {
            return new Redis({
                host: 'localhost',
                port: 6379,
            });
        },
        provide: REDIS_CLIENT,
    }
]
redis.service.ts

import { Injectable, Inject } from '@nestjs/common';

import { REDIS_CLIENT } from './redis.constants';
import { RedisClient } from './redis.providers';

@Injectable()
export class RedisService {
    public constructor(
        @Inject(REDIS_CLIENT)
        private readonly redisClient: RedisClient,
    ) { }
}
redis.module.ts

import { Module } from '@nestjs/common';
import { redisProviders } from './redis.providers';
import { RedisService } from './redis.service';

@Module({
    providers: [...redisProviders, RedisService],
    exports: [...redisProviders, RedisService],
})
export class RedisModule { }
当我尝试注入此服务时,出现以下错误:

[12:25:57 PM] Found 0 errors. Watching for file changes.

/path/redis-setup/dist/shared/redis/redis.service.js:28
        __metadata("design:paramtypes", [typeof (_a = typeof redis_providers_1.RedisClient !== "undefined" && redis_providers_1.RedisClient) === "function" ? _a : Object])
                                                             ^

ReferenceError: redis_providers_1 is not defined
    at /path/redis-setup/dist/shared/redis/redis.service.js:28:62
    at Object.<anonymous> (/path/redis-setup/dist/shared/redis/redis.service.js:31:3)
    at Module._compile (internal/modules/cjs/loader.js:816:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
    at Module.load (internal/modules/cjs/loader.js:685:32)
    at Function.Module._load (internal/modules/cjs/loader.js:620:12)
    at Module.require (internal/modules/cjs/loader.js:723:19)
    at require (internal/modules/cjs/helpers.js:14:16)
    at Object.<anonymous> (/path/redis-setup/dist/app.service.js:14:25)
    at Module._compile (internal/modules/cjs/loader.js:816:30)

我错过了什么?任何帮助或想法都将不胜感激。谢谢。

尝试在tsconfig.json中添加esModuleInterop:true

您面临什么问题?请详细说明。这并不能回答这个问题。一旦你有足够的钱,你将能够;相反@史蒂夫:他们是在建议解决方案,不是在问问题。