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

Node.js使用Axios调用Pipedrive GET请求返回400无响应问题求解

问题修复方案

现有代码问题汇总

  • dotenv未调用config()方法,导致环境变量无法正常加载,请求地址和令牌均为未定义值
  • axios请求参数中传入了未定义的data.body变量,额外拼接的无效参数触发Pipedrive接口400错误
  • 直接返回axios封装的完整响应对象,未取接口返回的原始data字段,不符合预期输出格式
  • 类导出时类名拼写错误,会触发运行时引用错误
  • 手动拼接URL参数存在符号缺失风险,若API_URL末尾未携带?会导致请求路径错误

修复后代码

控制器代码

// 加载环境变量必须调用config()
require('dotenv').config()
const Deal = require('./models/Deal')
const axios = require('axios')
const API_TOKEN = process.env.API_TOKEN
const API_URL = process.env.API_URL


class dealController {
    async getAllDealsPipedrive(req, res){
        try {
            // 移除无效params参数,api_token交给axios自动拼接避免URL符号问题
            const response = await axios.get(API_URL, {
              params: {
                api_token: API_TOKEN
              }
            })
            // 返回接口原始响应数据
            return res.status(200).json(response.data)
        } 
        catch (error) {
            // 打印错误日志方便排查,返回具体错误信息
            console.error('请求Pipedrive失败:', error)
            return res.status(400).json({"message": error.message || error})
        }
    }
}
// 修正类名拼写错误
module.exports = new dealController()

环境变量配置提示

请确认.env文件中API_URL配置为不带参数的原始地址,格式示例:

API_URL=https://mydomain.pipedrive.com/api/v1/deals
API_TOKEN=你的Pipedrive令牌

路由代码无需修改,可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:07