当前位置: 首页 > 知识库问答 >
问题:

如何从控制器在nestjs应用程序中发送错误代码?[关闭]

童冠玉
2023-03-14

这个问题是由一个打字错误或一个无法重现的问题引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能对未来的读者有所帮助。

如何在nestjs中发送除200以外的错误码?我试图在方法中注入响应对象,但没有方法发送错误。

save(@Body() body: any, @Res() response: Response): string {
    console.log("posting...")
    console.log(body)
    return "saving " + JSON.stringify(body)
}

上面的代码用20X状态发送正文,我想发送不同的状态代码,如400或500。

共有3个答案

傅宏恺
2023-03-14

无论您将编写什么代码,它都会出现在您的响应中

@HttpCode(204)
create() {
  return 'This action adds a new cat';
}
傅阳炎
2023-03-14

因此,返回 http 状态代码的完整示例既不抛出错误,也不通过静态@HttpCode():

import { Post, Res, HttpStatus } from '@nestjs/common';
import { Response } from 'express';
...
  @Post()
  save(@Res() response: Response) {
    response
      .status(HttpStatus.BAD_REQUEST)
      .send("saving " + JSON.stringify(body));
  }

您需要使用< code>@Res() decorator来获得底层的< code > express < code > Response 对象,并使用它的< code>status()方法。

尽管我仍然想知道是否有其他方法,不涉及操作有状态对象,而只是像在spring中那样在nestjs中进行干净的返回。。。

邹胜泫
2023-03-14

您应该在您的情况下使用异常过滤器。

在您的情况下,您将需要:

throw new BadRequestException(error);

或者你可以使用

throw new HttpException('Forbidden', HttpStatus.FORBIDDEN);

那会回来的

json prettyprint-override">{
  "statusCode": 403,
  "message": "Forbidden"
}

文档:https://docs.nestjs.com/exception-filters

 类似资料:
  • 除了200之外,我如何在nestjs中发送错误代码?我尝试在一个方法中注入响应对象,但没有方法发送错误。 上面的代码发送20X状态的身体,我想发送不同的状态代码,像400或500。

  • 问题内容: 我正在编辑内置的表单。 我在对话框中显示该表单,然后提交。 数据已正确输入数据库。 但是我不知道是否需要将一些寄回。其实我对事情有点困惑。 假设我在表中使用``jQuery添加了一行,当我提交表单时,然后在提交数据之后,我想发回那些行数据,以便我可以动态添加表行以显示添加的数据。 我很困惑如何获取这些数据。 这是我当前的代码: 这只是带有成功消息的模板。 问题答案: Symfony 2

  • 我们正在为我们的一个新项目探索Drools BPM。我基本上来自。NET背景,对java技术没有太多的知识。 我们期望能够使用Drools创建规则和工作流,以便将其公开为REST API,然后使用REST从。NET/Angular客户机应用程序执行规则。 我已经使用WildFly10服务器配置了KIE服务器。我的所有配置似乎都工作正常,但当我试图连接到控制器(“http://localhost:8

  • 我的代码与fcm文档提供的代码相同,当应用程序关闭时,我收到通知,而不使用意图附加或任何php代码。 当应用程序在前台时,会调用onMessageRecieved()方法,所以我会得到默认声音,但当应用程序在后台或关闭时,我不会得到声音。 我正在使用一个电话和firebase控制台发送消息,表明它没有php脚本或http请求 我的手机设置有最大音量通知

  • 问题内容: 我已经使用像这样的控制器构建了json REST服务: 它工作正常,但现在我需要修改所有响应,并向所有响应添加“状态”和“消息”字段。我已经阅读了一些解决方案: 从某个特定类的所有控制器方法对象返回,例如RestResponse,它将包含“ status”和“ message”字段(但这不是通用解决方案,因为我将不得不修改所有控制器并以新样式编写新控制器) 截取具有方面的所有控制器方法

  • 我想从我的android应用程序的用户那里收集错误报告。我的应用程序可以在google play上使用。有一种方法可以在谷歌play控制台中看到应用程序崩溃的质量