Рендеринг страницы в пользовательском HttpExceptionFilter - PullRequest
0 голосов
/ 22 апреля 2020

Кто-нибудь может предложить решение, как отобразить страницу в пользовательском HttpExceptionFilter в гнезде. js, при использовании Fastify и e js. Ниже текущего HttpExceptionFilter:

import { ExceptionFilter, Catch, ArgumentsHost, HttpException, HttpStatus } from '@nestjs/common';
import { FastifyRequest, FastifyReply } from 'fastify';

@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
  catch(exception: unknown, host: ArgumentsHost) {
    const ctx = host.switchToHttp();
    const response: FastifyReply<any> = ctx.getResponse();
    const request: FastifyRequest = ctx.getRequest();

    const status =
      exception instanceof HttpException
        ? exception.getStatus()
        : HttpStatus.INTERNAL_SERVER_ERROR;

    const objResponse = Object.assign(exception, {
      timestamp: new Date().toISOString(),
      path: request.req.url
    });

    if (status === HttpStatus.UNAUTHORIZED)
      return // page render with some content;

    if (status === HttpStatus.NOT_FOUND)
      return // page render with some content;

    if (status === HttpStatus.INTERNAL_SERVER_ERROR) {
      if (process.env.NODE_ENV === 'production') {
        return // page render with some content;
      }
      else {
        return response.status(status).send(objResponse);
      }
    }
  }
}

...