Skip to content
Snippets Groups Projects
Commit a58136e8 authored by L4168's avatar L4168
Browse files

fixed global error handling

parent 32f2cf56
No related branches found
No related tags found
3 merge requests!59Development to master,!31Development,!21Error handling
import { Catch, ExceptionFilter, HttpException, ArgumentsHost, Logger } from "@nestjs/common";
import {
ExceptionFilter,
Catch,
ArgumentsHost,
Logger,
HttpException,
HttpStatus,
} from '@nestjs/common';
@Catch()
export class HttpErrorFilter implements ExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const request = ctx.getRequest();
const response = ctx.getResponse();
const status = exception.getStatus();
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse();
const request = ctx.getRequest();
const status = exception.getStatus
? exception.getStatus()
: HttpStatus.INTERNAL_SERVER_ERROR;
const errorResponse = {
code: status,
timestamp: new Date().toLocaleDateString(),
path: request.url,
method: request.method,
message: exception.message.error || exception.message || null,
};
const errorResponse = {
code: status,
timestamp: new Date().toLocaleDateString(),
path: request.url,
method: request.method,
message:
status !== HttpStatus.INTERNAL_SERVER_ERROR
? exception.message.error || exception.message || null
: 'Internal server error',
};
Logger.error(`${request.method} ${request.url}`, JSON.stringify(errorResponse), "ExceptionFilter");
response.status(404).json({errorResponse});
if (status === HttpStatus.INTERNAL_SERVER_ERROR) {
Logger.error(
`${request.method} ${request.url}`,
exception.stack,
'ExceptionFilter',
);
} else {
Logger.error(
`${request.method} ${request.url}`,
JSON.stringify(errorResponse),
'ExceptionFilter',
);
}
}
\ No newline at end of file
response.status(status).json(errorResponse);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment