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

MongoDB数据接口Postman正常,前端调用显示undefined求助

问题分析与解决

核心问题:请求URL不匹配

API侧定义的是路径参数路由(/shops/:shopName,假设路由挂载在/shops路径下),但前端发起的请求用了查询参数格式:/shops?shopName=${shopName},导致后端无法正确读取req.params.shopName,返回数据不符合预期,最终前端拿到的shop对象没有shopName字段,显示undefined。

解决方法:修正前端请求URL

把前端的axios请求改成路径参数形式:

const res = await axios.get(`/shops/${shopName}`);

其他潜在问题优化

  1. 渲染容错处理
    初始shop是空对象,第一次渲染时shop.shopName必然是undefined,建议添加空值判断避免异常:
{capitalizeFirstLetter(shop?.shopName || '')}

或者给状态设置初始null值,配合加载状态:

const [shop, setShop] = useState(null);

// 渲染部分
{shop ? capitalizeFirstLetter(`${shop.shopName} `) : '加载中...'}
  1. API侧空值校验
    如果查询不到店铺,shop会是null,此时解构shop._doc会直接报错,建议提前判断:
try {
  // 原查询逻辑
  if (!shop) {
    return res.status(404).json("Shop not found!");
  }
  const { updatedAt, ...others } = shop._doc;
  res.status(200).json(others);
} catch (err) {
  res.status(500).json("Server error!");
}

内容的提问来源于stack exchange,提问作者sultan.h

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:20:28