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

Express后端调用Yelp Fusion API出现AxiosError 400错误求助

解决Yelp API请求400错误的方案

1. 先获取Yelp返回的具体错误信息

当前代码的catch块只打印了Axios的错误框架,看不到Yelp返回的核心错误原因(比如无效密钥、参数缺失等)。修改catch代码,直接输出Yelp的错误详情:

.catch(err => {
  console.log('Yelp API Error:', err.response?.data || err.message);
  res.status(err.status || 500).json({ error: err.response?.data?.error?.description || err.message });
})

2. 检查API密钥有效性

  • 登录Yelp开发者后台,确认你的API密钥未过期、未被禁用。
  • 不要硬编码密钥,改用环境变量避免泄露:
    1. 安装dotenv:npm install dotenv
    2. 项目根目录创建.env文件:
      YELP_API_KEY=你的Yelp API密钥
      
    3. 在路由文件顶部加载环境变量:
      require('dotenv').config();
      
    4. 修改Authorization头:
      Authorization: `Bearer ${process.env.YELP_API_KEY}`
      

3. 校验请求参数

Yelp的businesses/search接口对参数格式有要求:

  • 确保term不为空:后端添加参数校验
    router.post('/:item', async (req, res) => {
      const searchTerm = req.params.item;
      if (!searchTerm.trim()) {
        return res.status(400).json({ error: '搜索关键词不能为空' });
      }
      // 后续axios请求逻辑...
    })
    
  • 确认前端传参方式正确:如果前端通过URL路径传参(如POST /api/yelp/Pizza),用req.params.item没问题;如果参数在请求体里,要改成req.body.item。

4. 检查应用权限

登录Yelp开发者后台,确认你的应用拥有访问businesses/search接口的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:01:08