【问题标题】:NestJs swagger missing base pathNestJs招摇缺少基本路径
【发布时间】:2021-01-05 06:59:57
【问题描述】:

在本地机器上一切正常。部署后出现问题。 部署后,/querybuilder 会附加到基本 url。 所以,

http://localhost:80/helloworld 

会变成

http://52.xxx.xxx.139/querybuilder/helloworld 

招摇页面:

http://52.xxx.xxx.139/querybuilder/swagger/

当我通过 swagger ui 页面执行方法时: 这是我在网络标签中看到的:

请求网址:http://52.xxx.xxx.139/

控制器:

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

Main.ts

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

  const options = new DocumentBuilder()
  .setTitle('Query Builder - MongoDb Parser')
  .setDescription("This is Query Builder's MongoDb Parser takes database agnostic queries and transpiles it into native MongoDb query.")
  .setVersion('1.0')
  .build();
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api', app, document);
  await app.listen(80);
}
bootstrap();

【问题讨论】:

    标签: javascript node.js swagger nestjs


    【解决方案1】:

    在大多数情况下,实现此目的最合适的方法是使用 setGlobalPrefix 方法,该方法为您的 API 端点和 swagger 使用的 URL 添加前缀。

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

    但是,如果您的路由是由外部服务器(例如 nginx)处理的,您可以使用 addServer 方法将前缀仅添加到 swagger 使用的 URL。

    const options = new DocumentBuilder()
      .setTitle('Query Builder - MongoDb Parser')
      .addServer('/querybuilder')
    

    【讨论】:

    • 我试图使用 addBasePath - 但它似乎已被弃用,取而代之的是 addServer
    猜你喜欢
    • 2020-02-24
    • 1970-01-01
    • 2021-07-08
    • 2019-05-21
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    相关资源
    最近更新 更多