gpt4 book ai didi

typescript - 在 NestJS 中处理 204 无内容响应的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:28 28 4
gpt4 key购买 nike

我正在 Nest 中编写一个 RESTful API,我最近开始使用它,到目前为止我很喜欢它。但是,我正在努力寻找一种干净的模式来处理我的 GET 路由的 204 No Content 响应。有什么建议吗?

我有点惊讶,如果 GET Controller 方法返回的对象为空,框架中没有内置任何东西来返回 204——如果有,我还没有找到它。如果真的没有,我也想知道这是否值得在 GitHub 上提出功能请求。

我试过以下方法:

  • 使用 @Response() 作为 Controller 方法参数公开 Express res 属性,然后如果响应为空则使用 res.sendStatus(204)。但是,这也需要我手动发送 200 个响应,而我仍然希望依靠框架来处理请求-响应周期并尽可能保持我的 Controller 方法干净。
  • 研究了使用拦截器来检查响应对象是否为空,然后将 204 状态代码写入那里的响应中。我真的不想这样做,因为状态代码稍后可能会因异常过滤器而更改。
  • 使用中间件编写响应代码,但我的中间件在路由到 Controller 之前执行,之后我需要检查响应是否为空。 res.on('send') 似乎也没有在响应发出时拦截响应。
  • 抛出自定义 NoContentException 供我的异常过滤器处理。虽然为成功的响应代码抛出异常很奇怪,但我认为这是我在此期间继续进行的方式,因为我的异常过滤器是我编写的代码中最后执行的东西。

最佳答案

看着这个example :

@Post()
@HttpCode(204)
create() {
return 'This action adds a new cat';
}

这就是您需要做的全部。它为您返回 204。

关于typescript - 在 NestJS 中处理 204 无内容响应的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54026658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com