跳到正文
本中心目录
代码示例

Node.js 代理接入示例

使用 undici ProxyAgent、环境变量、AbortSignal 超时和安全日志完成代理请求。

只只HTTP技术团队维护更新于 2026年7月31日

Node.js 示例使用调用方项目锁定的 undici 依赖。PROXY_URL 格式为 http://<proxy-username>:<proxy-password>@<gateway-host>:<gateway-port>

Node.js

JavaScript
import { ProxyAgent, fetch } from 'undici';

const dispatcher = new ProxyAgent(process.env.PROXY_URL);
try {
  const response = await fetch('https://<public-test-host>/ip', {
    dispatcher,
    signal: AbortSignal.timeout(30_000),
  });
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  console.log(await response.json());
} finally {
  await dispatcher.close();
}

配置

  • 从受控环境变量读取代理 URL。
  • 不要把代理 URL 输出到控制台。

请求

  • ProxyAgent 作为 fetch dispatcher。
  • 使用 AbortSignal.timeout 设置整体截止时间。

资源释放

  • 示例结束后关闭 agent。
  • 生产连接池按代理身份复用并在配置变更时淘汰。

错误处理

  • 区分超时、代理认证和目标状态。
  • 日志只记录任务 ID 与状态。

这篇内容解决了你的问题吗?

反馈只用于改进公开文档,不会提交账号或请求信息。