Как я могу получить все маршруты (из всех модулей и контроллеров, доступных на каждом модуле) в Nestjs? - PullRequest
0 голосов
/ 06 октября 2019

Используя Nestjs, я хотел бы получить список всех доступных маршрутов (методов контроллера) с HTTP-глаголами, например:

API:
      POST   /api/v1/user
      GET    /api/v1/user
      PUT    /api/v1/user

Кажется, что требуется доступ к экспресс-маршрутизатору, но яПриют нашел способ сделать это в Nestjs. Для экспресса есть несколько библиотек, таких как " express-list-rout * " или " express-list-конечные точки ".

Заранее спасибо!

1 Ответ

0 голосов
/ 06 октября 2019

Я только что обнаружил, что в приложении Nestjs есть метод "getHttpServer ()", с этим я смог получить доступ к "стеку маршрутизатора", вот решение:

// main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as expressListRoutes from 'express-list-routes';

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


  const server = app.getHttpServer();
  const router = server._events.request._router;
  console.log(expressListRoutes({}, 'API:', router));

}
bootstrap();

Nestjs available routes!

...