如何将@liaoliaots/nestjs-redis redis 连接传递给全局保护构造函数

Posted

技术标签:

【中文标题】如何将@liaoliaots/nestjs-redis redis 连接传递给全局保护构造函数【英文标题】:How to pass a @liaoliaots/nestjs-redis redis connection to global guard constructor 【发布时间】:2022-01-16 04:35:55 【问题描述】:

我是 NestJS 的新手,对 @liaoliaots/nestjs-redis(https://github.com/liaoliaots/nestjs-redis) 包有一些误解。例如,我有一个带有以下构造函数的守卫:

import  InjectRedis  from '@liaoliaots/nestjs-redis';
import  Redis  from 'ioredis';

@Injectable()
export class SomeGuard implements CanActivate 
    constructor(@InjectRedis() redis: Redis) 
    
    ...

然后我希望那个守卫是全球性的:

//main.ts
...
app.useGlobalGuards(new SomeGuard(/* what??? */));
...

所以这是一个问题:我需要通过什么? @InjectRedis 做出奇怪的事情:)

感谢回复

【问题讨论】:

【参考方案1】:

用另一种方式代替app.useGlobalGuards

// ...
import  Module  from '@nestjs/common'
import  APP_GUARD  from '@nestjs/core'

@Module(
  // ...
  providers: [
    
      provide: APP_GUARD,
      useClass: SomeGuard,
    ,
  ],
)
export class AppModule 

更清洁,并帮助您避免污染您的自举功能。此外,它还让 Nest 解决了 Redis 依赖关系。否则,您需要获取此依赖项并将其传递给 new SomeGuard 使用const redis = app.get(getRedisToken())

https://docs.nestjs.com/guards#binding-guards

【讨论】:

以上是关于如何将@liaoliaots/nestjs-redis redis 连接传递给全局保护构造函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式