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

Node.js中如何将API响应转换为视图层可用的{app_sale_price.value}

Node.js API响应提取app_sale_price字段解决方案

原代码存在的问题

  • 函数未声明async,直接使用await关键字会触发语法错误
  • 先执行了res.send和return逻辑,后续的字段提取代码全程不会运行
  • map回调的返回语法错误,直接写{app_sale_price.value}既不符合对象声明规范,也无法返回目标字段值
  • 响应处理逻辑混用:原代码同时写了resp_result层级取值和response.json()调用,适配不同请求库的逻辑冲突

修正后代码

// 函数加async标识支持await语法
async function handleResponse(error, response) {
    if (!error) {
      try {
        // 处理响应转JSON,根据你使用的请求库二选一即可:
        // 1. 若用fetch/got等返回标准Response对象的库,保留下面这行
        const jsonResponse = await response.json();
        // 2. 若用axios/request等直接返回结构化数据的库,用下面这行替换上面的
        // const jsonResponse = response;

        // 提取商品数组
        const productList = jsonResponse['resp_result']['result']['products']['product'];
        
        // 批量提取所有商品的app_sale_price.value
        const arrayOfLists = productList.map(record => record.app_sale_price.value);
        
        // 直接返回处理好的数组给视图,res.send会自动完成序列化
        res.send(arrayOfLists);

        // 若只需要返回你原代码里取下标为1的单个商品值,把上面两行替换为下面的即可
        // const targetValue = productList[1].app_sale_price.value;
        // res.send(targetValue);
      } catch (e) {
        res.status(500).send('响应解析失败:' + e.message);
      }
    } else {
      res.status(500).send('请求失败:' + error.message);
    }
}

内容的提问来源于stack exchange,提问作者Shaiful Rizal Shaharudin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:45:02