小编Eri*_*ric的帖子

在 NestJS 中处理 204 No Content 响应的最佳方法是什么?

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

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

我尝试了以下方法:

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

rest api-design typescript nestjs

6
推荐指数
2
解决办法
5864
查看次数

标签 统计

api-design ×1

nestjs ×1

rest ×1

typescript ×1