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

Node.js项目中https-proxy-agent报错:ProxyAgent不是构造函数

解决ProxyAgent不是构造函数及PAC代理配置问题

问题分析

  1. 导入方式错误:https-proxy-agent v5及以上版本的导出结构发生变化,直接require('https-proxy-agent')无法获取到可用的构造函数。
  2. PAC代理支持缺失:你的代理地址是PAC自动配置脚本,https-proxy-agent本身不具备解析PAC文件的能力,需要专门工具处理。

解决方案

方案一:修正https-proxy-agent导入(仅适用于普通代理地址)

如果你的代理是普通HTTP/HTTPS代理而非PAC文件,修改导入语句即可:

// 方式1:解构导入正确的构造函数
const { HttpsProxyAgent } = require('https-proxy-agent');

// 在AWS配置中替换原有代理配置
httpOptions:{
  agent: new HttpsProxyAgent(proxyUrl)
}

或者:

// 方式2:获取默认导出
const HttpsProxyAgent = require('https-proxy-agent').default;

方案二:使用pac-proxy-agent处理PAC代理地址

因为你的代理是PAC文件,需要安装专门的依赖来解析:

  1. 安装依赖包:
npm install pac-proxy-agent
  1. 修改代码:
const AWS = require('aws-sdk');
const fs = require('fs');
const path = require('path');
const { PacProxyAgent } = require('pac-proxy-agent');
// 补充缺失的express导入
const express = require('express');

const app = express();
const port = 3003;
const proxyUrl = 'http://pac.prod.proxy.cargill.com:4200/proxy.pac'

AWS.config.update({
    secretAccessKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    accessKeyId: 'xxxxxxxxxxxxxxxxxxxx',
    region: 'us-east-1',
    httpOptions:{
      agent: new PacProxyAgent(proxyUrl)
    }
});

const s3 = new AWS.S3();

额外注意事项

  • 你的代码漏写了const express = require('express');,会导致express未定义,必须补上。
  • 不要将AWS凭证硬编码到代码中,建议通过环境变量或AWS本地凭证文件配置,避免泄露风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:33:13