You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何返回响应对象的属性并同时返回自定义新对象

解决方案

直接调整原方法的返回逻辑即可,首先要修正原代码里的两处常见错误,再按你的业务需要组合返回对象:

  • 修复Authorization请求头格式错误:Bearer后缀必须加空格,否则服务端会无法正常解析JWT
  • 原代码jwt.sign参数中_id: visit属于语法错误,需要取visit对象的id字段赋值
  • 增加错误分支处理,避免下游调用时拿到未定义的返回值

修改后的完整代码如下:

async createVisit(patientId: string, visitorId: string) {
  // 这里补充原逻辑缺失的visit对象构造,字段可按业务需求调整
  const visit = {
    patientId,
    visitorId,
    createTime: Date.now()
  }

  const userJWT = jwt.sign(
    {
      _id: visit._id,
      refreshCount: 0
    },
    this.localConfig.spirit.jwtSecret
  )
  const visitURL = this.localConfig.spirit.url
  let response = await fetch(visitURL, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + userJWT // 修复空格缺失问题
    },
    body: JSON.stringify(visit)
  });
  if (response.ok) {
    const result = await response.json();
    // 按需提取result属性,组合自定义对象返回
    return {
      // 以下是从result提取的属性示例,可按接口实际返回结构调整
      visitId: result.id,
      auditStatus: result.status,
      visitValidTime: result.validTime,
      // 以下是你需要新增的自定义对象
      customData: {
        source: 'visitCreateModule',
        requestTime: Date.now()
      }
    }
  }
  // 处理请求失败场景
  throw new Error(`创建访问记录失败,响应状态码:${response.status}`)
}

其他类的方法调用示例:

async businessHandler() {
  try {
    const visitResult = await this.visitService.createVisit('1001', '2002');
    // 直接访问返回的属性即可
    console.log(visitResult.visitId, visitResult.customData);
  } catch (e) {
    console.error(e.message);
  }
}

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:15:04