Nest JS 中间件 .exclude 选项不会阻止排除路由的中间件

Jag*_*aga 3 node.js express typescript nestjs

我试图排除中间件的一些路由。.exclude选项不起作用。相反,中间件也适用于排除的路由

这是中间件的代码 在此输入图像描述

这是用户模块的代码 在此输入图像描述

这是用户控制器的代码 在此输入图像描述

我想我的代码应该阻止“用户”GET 路由的中间件...但它允许被阻止的路由的中间件。

Яро*_*нко 5

这有效:

consumer
    .apply(CheckRoleMiddleware)
    .exclude(
    { path: '/page', method: RequestMethod.GET }
).forRoutes({path: '*', method: RequestMethod.ALL})
Run Code Online (Sandbox Code Playgroud)

完整路径是/api/page,但如果在排除时使用它,则不起作用。所以我使用相对路径“/page”而不是绝对路径“/api/page”,绝对路径不起作用。

在 main.ts 中定义了

app.setGlobalPrefix('api');
Run Code Online (Sandbox Code Playgroud)