小编Mar*_*ijk的帖子

NestJs - 使用自定义过滤器和 @Catch(MongoError) 捕获 MongoDB 错误

我正在使用 NestJS 通过 MongoDB 创建自定义 API。我有以下设置:

  // users.controller.ts

  @Post('sign-up')
  @UseFilters(MongoExceptionFilter)
  async signUp(@Body() createUserDto: CreateUserDto): Promise<any> {
    return await this.userService.signUp(createUserDto).catch(error => {
      throw new BadRequestException(error);
    });
  }
Run Code Online (Sandbox Code Playgroud)
  // user.service.ts

  async signUp(createUserDto: CreateUserDto): Promise<User> {
  const createUser = new this.userModel(createUserDto);
    return await createUser.save();
  }
Run Code Online (Sandbox Code Playgroud)
  // mongo-exception.filter.ts

  import { ArgumentsHost,Catch, ConflictException, ExceptionFilter } from '@nestjs/common';
  import { MongoError } from 'mongodb';

  @Catch(MongoError)
  export class MongoExceptionFilter implements ExceptionFilter {
    catch(exception: MongoError, host: ArgumentsHost) {
      console.log('>>>>>>>>>>>>>>>>>>>> exception: ', exception);
    }
  }
Run Code Online (Sandbox Code Playgroud)
  // package.json
  "dependencies": { …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js typescript nestjs

3
推荐指数
1
解决办法
4259
查看次数

标签 统计

javascript ×1

mongodb ×1

nestjs ×1

node.js ×1

typescript ×1