NestJS如何排除部分API不使用全局前缀/payments?
解决NestJS全局API前缀排除特定接口的方案
你可以直接在setGlobalPrefix方法里传入exclude配置项,实现和中间件排除逻辑几乎一致的效果,不用额外写复杂逻辑:
import { RequestMethod } from '@nestjs/common'; // 在main.ts中修改全局前缀设置 app.setGlobalPrefix('payments', { exclude: [ // 排除单个接口的所有请求方法 { path: 'platform/healthcheck', method: RequestMethod.ALL }, // 排除匹配通配符的GET类型接口 { path: 'public/*', method: RequestMethod.GET }, // 直接写字符串路径,默认排除该路径下所有请求方法 'open-api/docs', ], });
补充说明
exclude支持两种配置格式:- 对象形式:通过
path和method精准匹配需要排除的接口路径与请求方法 - 字符串形式:仅指定路径,默认排除该路径下的所有请求方法
- 对象形式:通过
- 路径支持通配符
*,可以批量匹配同一类接口
这种方式和你参考的MiddlewareConsumer排除逻辑一样简洁,无需额外添加中间件或其他复杂处理。
内容的提问来源于stack exchange,提问作者Kaushik Kakdey
相关产品推荐
相关产品推荐

