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

Postman请求正常但Axios调用返回undefined属性问题排查

解决Axios请求返回属性为undefined的问题

嘿,我一眼就看出问题出在哪了——你没搞清楚Axios的响应结构!

Postman能正常拿到数据是因为它直接展示了服务器返回的原始JSON,但Axios会把服务器响应包裹在一个对象里,真正的业务数据其实在res.data属性里,而不是直接挂在res对象上。你现在直接访问res.credit和res.points,当然会得到undefined啦。

修改你的前端代码

把访问响应属性的地方改成res.data.xxx就行:

fetchUserData = (user) => { 
  axios.post('api', { username: user }) 
    .then((res) => { 
      // 重点:从res.data里取数据
      this.setState({ credit: res.data.credit, points: res.data.points }) 
      console.log(`this is user stats\ncredit:${res.data.credit}\npoints:${res.data.points} for the user: ${user}`) 
    }) 
}

额外给后端提个小优化

你的后端代码现在没有处理“用户不存在”的情况,会导致请求一直处于挂起状态,建议补充上:

router.post('/', (req, res) => { 
  UserData.findOne({ username: req.body.username }, (err, user) => { 
    if (err) { 
      console.log('Error in fetching user from mongodb: ' + err); 
      return res.status(500).send(err); // 加状态码+return,避免后续代码执行
    }
    if (user) { 
      console.log('fetching data for: ' + user.username); 
      console.log(user); 
      res.send(user); 
    } else {
      // 用户不存在时返回404和提示信息
      res.status(404).send({ message: 'User not found' });
    }
  }); 
})

这样修改后,你的应用就能正常拿到用户的credit和points数据啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:52:31