0
const app = await NestFactory.create(AppModule);
app.useGlobalFilters(new AllExceptionsFilter());
app.enableCors();
app.useGlobalPipes(new ValidationPipe());

const config = new DocumentBuilder()
               .setTitle('API')
               .setDescription('Node Api to connec')
               .setVersion('1.0.0')
               .build();
const document = `SwaggerModule.createDocument`(app, config);
SwaggerModule.setup('api', app, document);

await app.listen(8000);

我有一些模块,如用户模块(UserModule)、驱动程序模块(DriverModule)。我只希望驱动模块的 api 以大摇大摆的方式显示。

我知道SwaggerModule.createDocumentSwaggerOption 有第三个参数。

const option:SwaggerDocumentOptions = {
 include: [() => DriversModule],
 deepScanRoutes: true
}
const document = SwaggerModule.createDocument(app, config, option);

但是在这样写之后,Swagger 并没有显示任何 api。我No operations defined in spec!从 UI 中的 swagger 收到消息。我无法弄清楚我做错了什么。

4

1 回答 1

0
const option:SwaggerDocumentOptions = {
  include: [() => DriversModule],
  deepScanRoutes: true
}
const document = SwaggerModule.createDocument(app, config, option);

问题在于包含属性。我给出了一个返回模块的函数。当我直接编写模块时,它可以工作。

const option:SwaggerDocumentOptions = {
  include: [DriversModule],
  deepScanRoutes: true
}
const document = SwaggerModule.createDocument(app, config, option);

这将起作用。

于 2021-11-21T17:02:18.593 回答