nest 中的guard 如何操作redis呢
发布于 5 年前 作者 Yaob1990 4323 次浏览 来自 问答

image.png

在main.ts中

// 使用全局过滤器
  app.useGlobalGuards(new AuthGuard());

在app.module.ts 中我初始化了redis

这时候,authguard访问不了redis: An argument for ‘redisService’ was not provided.

这里我应该怎么搞呢。

多谢·

2 回复

全局 pipe/guards/interceptor 这些独立于模块之外, 所以注入的时候找不到 redisService. nest 5.0 以下可以 select 模块让他找到,

const authGuard = app
  .select(XXXModule)
  .get(XXXGuard/Pipe/Interceptor);

app.useGlobalGuards(authGuard);

以上的版本, 没玩过, 官网找了找 如下, 你可以试试 传送门 image.png

@yviscool 感谢,这种方式可以~

我理解,这时候的guard 其实是归属于app模块的,app里面注入了,所以可以使用。不知道我的理解对不对~

回到顶部