• NestJS Logo
    NestJS 中文文档
    v10.0.0
    • 介绍
    • 快速上手
    • 控制器
    • 提供者
    • 模块
    • 中间件
    • 异常过滤器
    • 管道
    • 守卫
    • 拦截器
    • 自定义装饰器
    • 自定义提供者
    • 异步提供者
    • 动态模块
    • 依赖注入作用域
    • 循环依赖
    • 模块引用
    • 懒加载模块
    • 执行上下文
    • 生命周期事件
    • 发现服务
    • 跨平台无关性
    • 测试
  • 迁移指南
  • API 参考
  • 官方课程
  1. 文档
  2. 常见问题
  3. 全局路由前缀

英文原版
HTTP 长连接
原始请求体

全局路由前缀

若要为应用中的所有路由统一设置前缀,可以调用 INestApplication 实例的 setGlobalPrefix() 方法。

在 Nest 应用中,你可以通过 INestApplication 实例的 setGlobalPrefix() 方法,为所有路由统一设置前缀:

const app = await NestFactory.create(AppModule)
app.setGlobalPrefix('v1')

这样设置后,应用中的所有路由都会自动加上 v1/ 前缀,例如原本的 /users 路由会变为 /v1/users。

排除特定路由

如果你希望某些路由不使用全局前缀,可以使用 exclude 选项显式排除:

app.setGlobalPrefix('v1', {
  exclude: [{ path: 'health', method: RequestMethod.GET }],
})

你也可以直接传入路径字符串,以排除该路径下的所有请求方法:

app.setGlobalPrefix('v1', { exclude: ['cats'] })
提示

exclude 选项中的 path 支持 path-to-regexp 提供的路径参数格式。 请注意:不支持使用星号通配符(*),应使用路径参数(如 :id)或命名通配符(如 *splat)的形式。