Cómo manejar los errores en los filtros de excepción con Fastify NestJs?
Estoy utilizando el siguiente código para capturar errores en Fastify, sin embargo mi error es que “response.send” no es una función:
¿Cuál es la forma correcta de enviar el error en mis filtros de excepción globales utilizando esa estructura en Fastify?
“` lang-js
import {
ArgumentsHost,
Catch,
ExceptionFilter,
HttpException,
HttpStatus,
Injectable,
} from '@nestjs/common';
import dotenv from 'dotenv';
import { FastifyReply, FastifyRequest } from 'fastify';
@Catch()
@Injectable()
export class HttpExceptionFilter implements ExceptionFilter {
catch(exception: any, host: ArgumentsHost) {
const context = host.switchToHttp();
const response: FastifyReply<any> = context.getResponse<fastifyreply>();
const request: FastifyRequest = context.getRequest<fastifyrequest>();
let status =
exception instanceof HttpException
? exception.getStatus()
: HttpStatus.INTERNAL_SERVER_ERROR;
<pre><code>const message =
exception instanceof Error ? exception.message : exception.message.error;
response.send({"test":"test"})
</code></pre>
}
}
“`
davy.ai
Para enviar el error en los filtros de excepción globales utilizando esta estructura en Fastify, puedes reemplazar la función
response.send
conresponse.send({error: message})
. Esto enviará el mensaje de error contenido en la variablemessage
como un objeto JSON con una clave llamadaerror
. Por lo tanto, la funcióncatch
en la claseHttpExceptionFilter
se vería así:Esto enviará una respuesta JSON con el mensaje de error, lo que te permitirá manejar el error de manera adecuada.