A simple http exception filter for NestJS applications
npm install nestjs-http-exception-filter
A Nest http exception filter.
A simple NestJS Http Exception Filter logging the HTTP response and formatting errors returned by the API.
``bash`
npm install --save @algoan/nestjs-http-exception-filter
Example:
`typescript
import { Module } from '@nestjs/common';
import { APP_FILTER } from '@nestjs/core';
import { HttpExceptionFilter } from '@algoan/nestjs-http-exception-filter';
/**
* Core module: This module sets the http exception filter globally
*/
@Module({
providers: [
{
provide: APP_FILTER,
useClass: HttpExceptionFilter,
},
],
})
export class CoreModule {}
`
Example 2:
`typescript
import { NestFactory, HttpAdapterHost } from '@nestjs/core';
import { HttpExceptionFilter } from '@algoan/nestjs-http-exception-filter';
import { MainModule } from './main.module';
async function bootstrap() {
const app = await NestFactory.create(MainModule,{
});
const httpAdapterHost = app.get(HttpAdapterHost);
app.useGlobalFilters(new HttpExceptionFilter(
await app.listen(3000);
console.log(App listening on port 3000)`
}
bootstrap();
`typescript
{
"code": string,
"message": string,
"status": number
}
// Examples
// 400
{
"code": "BAD_REQUEST",
"message": "Bad Request",
"status": 400
}
// 500
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal Server Error",
"status": 500
}
// 413
{
code: 'PAYLOAD_TOO_LARGE',
message:
Your request entity size is too big for the server to process it:
- request size: 590001;
- request limit: 102400.,`
status: 413,
}
bash
Warning
[Nest] 96665 - 04/14/2020, 6:35:27 PM [HttpExceptionFilter] Object:
{
"message": "400 [GET /badrequest] has thrown an HTTP client error",
"exceptionStack": "stackTrace",
"headers": {
"host": "localhost:3000",
"user-agent": "insomnia/7.1.1",
"accept": "/"
}
}Error
[Nest] 96665 - 04/14/2020, 6:34:33 PM [HttpExceptionFilter] Object:
{
"message": "500 [GET /error] has thrown a critical error",
"headers": {
"host": "localhost:3000",
"user-agent": "insomnia/7.1.1",
"accept": "/"
},
"exceptionStack": "stackTrace",
}
``