【问题标题】:Nestjs call POST in controller from GET in another ControllerNestjs从另一个控制器中的GET调用控制器中的POST
【发布时间】:2022-01-13 12:54:19
【问题描述】:

我有 API 调用,从一个控制器获取。 根据响应,我需要调用另一个控制器 POST

我在使用 redirect() 时遇到问题,我收到“无法获取”,因为第二个 API 调用是 POST 方法。

async retrieveOrgUnit(@RequestHeader(HeadersDto) headers: HeadersDto, @Param() params: OrganizationGetUnitDto, @Body() offerDto, @Res() response: Response, cpg: ChargingProvisioningGateway) {
let result = await cpg.organizationUnit.getOrgUnitProfile({
    path: {
        customerExternalId: params.orgId,
        orgUnitExternalId: params.orgId
    },
    body: {}
}).then(async res => {
    res.status
    if( res.data.status === 22){
        **await response.redirect(307, '/offer')** 
      }
    return res.data
  }).catch(err => {
    Logger.log('Failed, Error: ' + err);
    return err.status ? err.status : err.data ? err.data : err
  })

如果您可以在 response.redirect(307, '/offer') 中看到我正在调用另一个正在调用 POST API 的控制器,但该方法是 GET。 有什么建议吗?!

【问题讨论】:

    标签: typescript redirect nestjs


    【解决方案1】:

    Redirects follow special rules,但通常您不能将 FROM GET 更改为不同的 HTTP 方法,只能从其他 HTTP 方法 TO GET。我建议只将路由的相关服务类注入到当前类中,并直接调用该服务,而不是向您自己的服务器发出 HTTP 请求并增加请求时间。

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2015-09-07
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多