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
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 与状态。
这篇内容解决了你的问题吗?
反馈只用于改进公开文档,不会提交账号或请求信息。