Можно ли отображать страницу 404 для не найденных маршрутов в гнезде js? - PullRequest
1 голос
/ 21 июня 2020

Я использую гнездо js для обработки всех API. Я хочу показать страницу 404, если маршрут не найден.

1 Ответ

2 голосов
/ 21 июня 2020

Вы можете определить пользовательский глобальный ExceptionFilter, который перехватывает исключение NotFoundException и затем обрабатывает ошибку соответствующим образом:

@Catch(NotFoundException)
export class NotFoundExceptionFilter implements ExceptionFilter {
    catch(exception: NotFoundException, host: ArgumentsHost) {
        const ctx = host.switchToHttp();
        const response = ctx.getResponse();
        response.sendFile('./path/to/your/404-page.html');
    }
}

Вы можете установить этот фильтр исключений как global следующим образом:

async function bootstrap() {
  const app = await NestFactory.create(AppModule);    
  // ...
  app.useGlobalFilters(new NotFoundExceptionFilter());

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