NestJS中的所有POST禁用状态201

问题描述 投票:0回答:2

我的客户期望所有成功的状态码等于200。但是,对于所有POST方法,NestJS默认使用201。如何在POST应用程序范围内禁用201?不是针对一种方法,而是针对整个应用程序。

javascript node.js nestjs
2个回答
0
投票

您可以为每个帖子使用HttpCode()装饰器来更改其返回码。

我可以立即想到的另一种选择是使用侦听器并修改响应状态,只要它在可观察对象的pipe方法中使它成为侦听器即可。


0
投票

根据官方文档https://docs.nestjs.com/controllers#status-code

此外,响应的状态码默认始终为200,除了使用201的POST请求。我们可以轻松更改此设置通过在处理程序级别添加@HttpCode(...)装饰器来实现行为(see Status codes)。

@Post()
@HttpCode(200)
create() {
  return 'This action adds data';
}

还有nestjs还有另一种依赖库的方法(表达,固定):

我们可以使用特定于库的(例如Express)响应对象,可以在方法处理程序中使用@Res()装饰器注入签名(例如,findAll(@Res()响应))。通过这种方法,您有能力(和有责任)使用本机响应该对象公开的处理方法。例如,使用Express,您可以使用以下代码构建响应response.status(200).send()

© www.soinside.com 2019 - 2024. All rights reserved.