Node.js fetch代理怎么配置?认证与验证

先说结论:直接回答
Node.js fetch 可以通过 Undici ProxyAgent 使用已分配的代理。需要隔离时,为单次请求传入 dispatcher;只有进程内相关请求都应共用同一路径时,才设置全局 dispatcher。真实凭证应留在源码之外,同时设置超时、使用允许的端点验证,并保留恢复直连的方法。
配置范围应尽量小:单次请求 dispatcher 最容易审核;全局 dispatcher 会有意影响同一进程中的其他 fetch 调用。
确认运行环境与端点字段
| 检查项 | 确认内容 |
|---|---|
| 运行环境 | 使用仍在维护的 Node.js 版本,并确认该版本中的 fetch 行为 |
| 代理器 | 使用实际分配的代理端点创建 Undici ProxyAgent |
| 请求范围 | 只有当前请求需要代理时,在该请求中传入 dispatcher |
| 认证信息 | 从受保护的运行时配置读取,不写入代码仓库 |
| 验证记录 | 记录状态、耗时、预期出口结果和恢复动作 |
先记录 Node.js 版本、代理协议、HOST、PORT、认证方式、目标 URL、超时值和预期验证结果。不要猜测协议支持,也不要直接复制其他客户端库的配置方式。
代理端点和目标 URL 的作用不同,应分别记录,避免把 DNS、TLS、连接或目标响应错误混在一起。
创建 ProxyAgent
import { ProxyAgent } from "undici";const proxyUrl = new URL("http://HOST:PORT"); const dispatcher = new ProxyAgent({ uri: proxyUrl.origin });


