agent-base

中文文档
9.0.0发布于 2026/04/01MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 11.7亿

将函数转换成 http.Agent 实例

中文使用文档

agent-base

将函数转换成 http.Agent 实例

这个模块是一个薄包装围绕基础 http.Agent 类。

它提供了一个抽象类,该类必须定义 connect() 函数, 谁负责创建HTTP的底层套接字 客户端请求将使用。

这个 connect() 函数可以返回任意的 Duplex 流,或 另一个 http.Agent 实例来委托请求,并且可能是 异步的(通过定义 async 功能)。

此代理的实例可以与 http 和 https 模块。中的options参数进行区分 connect() 函数包括 secureEndpoint 属性,该属性可被检查 确定应该返回什么类型的套接字。

一些子类:

下面是一些更有趣的用法 agent-base。 发送一个pull请求来列出你的!

例子

下面是一个创建new的最小示例 net.Socket 或 tls.Socket 基于 secureEndpoint 财产。这两种药剂都可以使用 这个 http 和 https 模块。

import * as net from 'net';
import * as tls from 'tls';
import * as http from 'http';
import { Agent } from 'agent-base';

class MyAgent extends Agent {
  connect(req, opts) {
    // `secureEndpoint` is true when using the "https" module
    if (opts.secureEndpoint) {
      return tls.connect(opts);
    } else {
      return net.connect(opts);
    }
  }
});

// Keep alive enabled means that `connect()` will only be
// invoked when a new connection needs to be created
const agent = new MyAgent({ keepAlive: true });

// Pass the `agent` option when creating the HTTP request
http.get('http://nodejs.org/api/', { agent }, (res) => {
  console.log('"response" event!', res.headers);
  res.pipe(process.stdout);
});

版本与发布记录

agent-base 共发布 33 个版本,首次发布于 2013/07/10;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
9.0.0latest2026/04/017 个月前
8.0.02026/03/127 个月前
7.1.42025/07/081.3 年前
7.1.32024/12/081.9 年前
7.1.22024/12/071.9 年前
7.1.12024/03/302 年前

关于 agent-base 的常见问题

agent-base 是什么?

将函数转换成 http.Agent 实例

如何安装 agent-base?

在项目目录运行 npm install agent-base,或使用 pnpm add / yarn add / bun add。

agent-base 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

agent-base 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

agent-base 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

agent-base 可以商用吗?

agent-base 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

agent-base 的下载量有多少?

根据 npm 官方下载统计,agent-base 在 2026/10/06 – 2026/11/04 这 30 天内被下载 1,171,530,110 次,日均约 39,051,004 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

agent-base 还在维护吗?

最新版本 9.0.0 发布于 2026/04/01(7 个月前);至今共发布 33 个版本,其中过去 12 个月发布了 2 个;首次发布于 2013/07/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。