前言

这个是非常常见的一种配置,我们的接口通过域名访问,但是这个域名不一定全部都给后端使用,所以一般后端服务都是基于域名,通过一个前缀路由来实现区分,比如:

www.xxx.com

# 后端服务1
www.xxx.com/v1

# 后端服务2
www.xxx.com/v2

通过一个统一的路径名来区分。

教程

在nestjs中,这个配置放在了文档比较末端的地方,代码如下:

import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";

async function bootstrap() {
    const app = await NestFactory.create(AppModule);

    // 全局路由前缀
    app.setGlobalPrefix("api");

    await app.listen(3000);
}
bootstrap();

此时我们访问就必须加上/api的路径前缀了。

http://localhost:3000/api

官方文档: global-prefix

拓展:接口版本区分?

你可能会认为这个方法可以用于实现接口的版本区分,但是它并不能做到,文档中所提供的排除选项,只能精准匹配,他是无法匹配某一个路径从而排除这个路径下的所有路由的。

事实上Nestjs官方本身就已经考虑到这种情况,它们提供了更强大的配置处理,这里就需要自己去查看官方文档:

英文版:versioning

中文版:API 多版本

分类: Nest.js 标签: Nestjs全局路由前缀区分

评论

暂无评论数据

暂无评论数据

目录