如何在NestJS中使用globalPipse做出自定义响应

DD DD

我使用'class-validator'的dto在user.controller中编写了一个api。

  @Post('/')
  public async createUser(
    @Res() res,
    @Body() createUserDto: CreateUserDto,
  ) {
    ... do something
  }

我将useGlobalPipes放在main.ts中。

  app.useGlobalPipes(
    new ValidationPipe({
      whitelist: true,
      transform: true,
      forbidNonWhitelisted: true,
      transformOptions: {
        enableImplicitConversion: true,
      },
    }),
  );

当我请求api时,会在下面收到响应。

{
    "statusCode": 400,
    "message": [
        "userName should not be empty",
        "userName must be a string",
    ],
    "error": "Bad Request"
}

到目前为止,nestjs可以正常工作。
但是我想要这样的自定义响应。

{
    "code": 400,
    "errorReason": [
        "userName should not be empty",
        "userName must be a string",
    ],
    "msg": "Bad Request",
    "success": false
}

我可以得到维护上面代码的自定义响应吗?
如果可以的话,您能给我一些建议或一些代码吗?
感谢您阅读我的问题。

杰伊·麦克多尼尔

在Nest中,管道可用于验证,转换传入的对象,在某些情况下可能与数据库进行对话以及在出现任何问题时引发错误。如果您想更改响应,则在抛出错误后,您需要研究使用“可以ExceptionFilter在其中执行以下操作”

@Catch()
export class CatchAllFilter implements ExceptionFilter {

  catch(exception: Error, host: ArgumentHost) {
    res
      .status((exception.getStatus && exception.getStatus()) || 500)
      .send({
        (exception.getResponse && ...exception.getResponse()) || ...{ message: exception.message },
        success: false
      });
  }
}

上面的代码一定会导致类型错误,但是它应该引导您走上正确的路

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在djangorestframework中做出自定义响应

来自分类Dev

如何在MVC4中做出自定义删除操作结果?

来自分类Dev

如何在 QtCreator 中使用 CMAKE 列出自定义文件?

来自分类Dev

如何在Nestjs中使用自定义类文件维护Nestjs的规则

来自分类Dev

如何在NestJS管道中进行自定义响应

来自分类Dev

如何在api响应中给出自定义错误消息

来自分类Dev

如何在NestJS中使用Fastify设置自定义Content-Type?

来自分类Dev

如何在自定义装饰器中使用NestJS Reflector?

来自分类Dev

如何使用NSLog输出自定义类型的值?

来自分类Dev

如何在Spring中使用List <Entity>以外的其他属性返回自定义响应

来自分类Dev

如何在Storyboard中使用自定义UICollectionViewCell?

来自分类Dev

如何在MVC中使用自定义storeId?

来自分类Dev

如何在自定义对象的android中使用ArrayAdapter

来自分类Dev

如何在自定义指令中使用ngChange

来自分类Dev

如何在动态编译中使用自定义类

来自分类Dev

如何在SublimeText中使用自定义字体

来自分类Dev

如何在Swagger中使用自定义模板

来自分类Dev

如何在MSBuild脚本中使用自定义变量?

来自分类Dev

如何在Java中使用自定义类型注释

来自分类Dev

如何在QStateMachine addtransition中使用自定义信号

来自分类Dev

如何在iOS中使用.ttc自定义字体

来自分类Dev

如何在网站中使用自定义字体

来自分类Dev

如何在自定义jQuery函数中使用函数

来自分类Dev

如何在Maven中使用自定义库?

来自分类Dev

如何在Python中使用自定义谓词排序

来自分类Dev

如何在多个ViewController中使用自定义UIAlertview?

来自分类Dev

如何在@require(Greasemonkey)中使用自定义变量

来自分类Dev

如何在自定义类中使用Dask

来自分类Dev

Angular如何在自定义ErrorHandler中使用HttpClient?

Related 相关文章

  1. 1

    如何在djangorestframework中做出自定义响应

  2. 2

    如何在MVC4中做出自定义删除操作结果?

  3. 3

    如何在 QtCreator 中使用 CMAKE 列出自定义文件?

  4. 4

    如何在Nestjs中使用自定义类文件维护Nestjs的规则

  5. 5

    如何在NestJS管道中进行自定义响应

  6. 6

    如何在api响应中给出自定义错误消息

  7. 7

    如何在NestJS中使用Fastify设置自定义Content-Type?

  8. 8

    如何在自定义装饰器中使用NestJS Reflector?

  9. 9

    如何使用NSLog输出自定义类型的值?

  10. 10

    如何在Spring中使用List <Entity>以外的其他属性返回自定义响应

  11. 11

    如何在Storyboard中使用自定义UICollectionViewCell?

  12. 12

    如何在MVC中使用自定义storeId?

  13. 13

    如何在自定义对象的android中使用ArrayAdapter

  14. 14

    如何在自定义指令中使用ngChange

  15. 15

    如何在动态编译中使用自定义类

  16. 16

    如何在SublimeText中使用自定义字体

  17. 17

    如何在Swagger中使用自定义模板

  18. 18

    如何在MSBuild脚本中使用自定义变量?

  19. 19

    如何在Java中使用自定义类型注释

  20. 20

    如何在QStateMachine addtransition中使用自定义信号

  21. 21

    如何在iOS中使用.ttc自定义字体

  22. 22

    如何在网站中使用自定义字体

  23. 23

    如何在自定义jQuery函数中使用函数

  24. 24

    如何在Maven中使用自定义库?

  25. 25

    如何在Python中使用自定义谓词排序

  26. 26

    如何在多个ViewController中使用自定义UIAlertview?

  27. 27

    如何在@require(Greasemonkey)中使用自定义变量

  28. 28

    如何在自定义类中使用Dask

  29. 29

    Angular如何在自定义ErrorHandler中使用HttpClient?

热门标签

归档