nestjs-http-exception-filter
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Nest Logo

A Nest http exception filter.

NestJS Http Exception Filter

A simple NestJS Http Exception Filter logging the HTTP response and formatting errors returned by the API.

Installation

npm install --save @algoan/nestjs-http-exception-filter

Usage

Default usage

Use the http exception filter as a global filter (cf. refer to the last paragraph of this section for more details).

Example:

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:

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(<any>httpAdapterHost));
  await app.listen(3000);
  console.log(`App listening on port 3000`)
}
bootstrap();

Default response body

{
  "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.`,
  status413,
}

Default Logger messages

# 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",
}

Package Sidebar

Install

npm i nestjs-http-exception-filter

Weekly Downloads

29

Version

1.0.6

License

ISC

Unpacked Size

18.6 kB

Total Files

9

Last publish

Collaborators

  • alexanderc