nestjs 在某一模块设置全局守卫
时间: 2024-03-27 22:39:43 浏览: 23
要在 NestJS 的某个模块中设置全局守卫,你可以使用 `@Module()` 装饰器中的 `providers` 属性来定义一个全局守卫。下面是一个示例:
```typescript
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { MyGuard } from './my.guard';
@Module({
providers: [
{
provide: APP_GUARD,
useClass: MyGuard,
},
],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {}
}
```
在上面的示例中,我们定义了一个名为 `MyGuard` 的守卫,并将其作为 `APP_GUARD` 的提供者注入到了 `AppModule` 中。这样,`MyGuard` 就会成为全局守卫。
需要注意的是,为了让 NestJS 知道我们要使用 `MyGuard` 作为全局守卫,我们使用了 `provide` 属性指定了守卫的提供者,并将其值设置为 `APP_GUARD`。这样 NestJS 就会自动将 `MyGuard` 注册为全局守卫。
另外,我们还实现了 `NestModule` 接口,并在 `configure` 方法中留空。这是因为 `NestModule` 是一个可选接口,但是如果我们要在模块中使用中间件,就需要实现该接口并在 `configure` 方法中定义中间件。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)