0.0.3 • Published 2 years ago
nestjs-error-handler v0.0.3
NestJs Error Handler
Installation
$ npm i -S nestjs-error-handler
Usage
- Add your timezone on .env
-- .env TZ='America/Sao_Paulo'
- Create a JSON file that represent the error that was visible in the client, the original error will be only on console
<!-- htttp-status.json --> { "ECONNREFUSED": "Connection Refused", "400": "Bad Request", "401": "Unauthorized", "403": "Forbidden", "404": "Not Found", "405": "Method Not Allowed", "406": "Not Acceptable", "408": "Request Timeout", "413": "Payload Too Large", "414": "URI Too Long", "422": "Unprocessable Entity", "428": "Precondition Required", "429": "Too Many Requests", "500": "Internal Server Error", "501": "Not Implemented", "502": "Bad Gateway", "503": "Service Unavailable", "504": "Gateway Timeout", "507": "Insufficient Storage", "508": "Loop Detected" } <!--If your error is not mapped here the original error will be displayed in the client.-->
- Add on main.ts file
// main.ts
import { AppExceptionFilter, ExceptionInterceptor } from 'nestjs-error-handler';
import { Logger } from '@nestjs/common';
import * as htttpStatus from './htttp-status.json';
async function bootstrap() {
const app = await NestFactory.create(MainModule);
app.useGlobalFilters(new AppExceptionFilter(new Logger(), htttpStatus, process.env.TZ));
app.useGlobalInterceptors(new ExceptionInterceptor());
...
}
Custom error
import { ApiException } from 'nestjs-error-handler'; @Controller() export class HealthController { constructor(private readonly healthService: IHealthService) {} @Get('/health') async getHealth(): Promise<string> { throw new ApiException('Error', HttpStatus.INTERNAL_SERVER_ERROR); } }
Now all exceptions will be handler.
The following is a list of all the people that have contributed to nest-boilerplate. Thanks for your contributions!
License
It is available under the MIT license. License