@aws-sdk/middleware-stack

中文文档
3.374.0发布于 2023/07/21Apache-2.0TypeScriptESM + CJS近 30 天下载 692.1万

提供将多个中件函数组合成单个处理器的手段

此软件包已被标记为弃用

This package has moved to @smithy/middleware-stack

中文使用文档
文档目录4 节
  1. 正在添加中间软件
  2. 绝对位置
  3. 相对位置
  4. 删除中间软件

@aws-sdk/medware-stack (中文(简体) )

NPM version NPM downloads

软件包包含一个执行的中件堆栈接口. 中间软件 堆栈是一个按照指定的顺序存储中间软件并解析这些结构 中间软件变成单一的处理器.

中间软件堆有5个 Steps,每个代表特定请求生命周期:

  • 初始化:正在准备投入。 典型初始化任务的例子包括注射默认选项计算衍生参数.

  • 序列化:输入完成并准备被序列化. 典型的序列化任务的例子包括输入验证和从用户输入建立HTTP请求.

  • 构建:输入已被序列化为HTTP请求,但该请求可能需要作进一步修改. 任何修改要求都将适用于所有复议。 典型的建设任务的例子包括注入HTTP头来描述请求的一个稳定方面,例如: Content-Length 或身体检查.

  • 最终确定请求: 正在准备将请求通过电线发送. 这一阶段的要求应该已经非常完整,因此只能按照接受者的期望加以修改。 典型的定稿任务的例子包括请求签名和逐一注射信头.

  • 淡化: 响应已经到来, 这里的中间软件将把原始响应对象去化为结构化响应

正在添加中间软件

在中件堆栈中添加中件有两种方式. 他们都把中间软件添加到指定的 Step 但它们提供 精细的定位控制 不同.

绝对位置

您可以在指定的步骤中添加中间软件 :

stack.add(middleware, {
  step: "finalizeRequest",
});

这种做法在大多数情况下是有效的。 有时,你希望你的中间软件 在前面被执行 Step您可以设置 Priority 改为 high设置 Priority 改为 low 然后,此中间软件将在 Step数字 :

stack.add(middleware, {
  step: "finalizeRequest",
  priority: "high",
});

如果将多个中间软件添加到同一中 step 不变 priority,其顺序由添加顺序决定.

相对位置

在某些情况下,您可能想要在其它已知的中间软件之前执行您的中间软件,然后可以使用 addRelativeTo()数字 :

stack.add(middleware, {
  step: "finalizeRequest",
  name: "myMiddleware",
});
stack.addRelativeTo(anotherMiddleware, {
  relation: "before", //or 'after'
  toMiddleware: "myMiddleware",
});

删除中间软件

您可以一次以一个名称去除中间软件 :

stack.remove("Middleware1");

如果您为中间软件指定了标记, 您可以一次按照标记删除多个中间软件 :

stack.add(middleware, {
  step: "finalizeRequest",
  tags: ["final"],
});
stack.removeByTag("final");

版本与发布记录

@aws-sdk/middleware-stack 共发布 120 个版本,首次发布于 2018/11/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.374.0latest2023/07/213 年前
3.370.02023/07/143 年前
3.369.02023/07/113 年前
3.357.02023/06/223 年前
3.347.02023/06/073 年前
3.342.02023/05/313 年前

其他发布通道:preview → 0.1.0-preview.9,alpha → 1.0.0-alpha.6,beta → 1.0.0-beta.4,gamma → 1.0.0-gamma.8,rc → 1.0.0-rc.10。

关于 @aws-sdk/middleware-stack 的常见问题

@aws-sdk/middleware-stack 是什么?

提供将多个中件函数组合成单个处理器的手段注意:该包已被作者标记为弃用——This package has moved to @smithy/middleware-stack

如何安装 @aws-sdk/middleware-stack?

在项目目录运行 npm install @aws-sdk/middleware-stack,或使用 pnpm add / yarn add / bun add。

@aws-sdk/middleware-stack 支持 TypeScript 吗?

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

@aws-sdk/middleware-stack 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aws-sdk/middleware-stack 需要什么版本的 Node.js?

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

@aws-sdk/middleware-stack 可以商用吗?

@aws-sdk/middleware-stack 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-sdk/middleware-stack 的下载量有多少?

根据 npm 官方下载统计,@aws-sdk/middleware-stack 在 2026/10/08 – 2026/11/06 这 30 天内被下载 6,921,238 次,日均约 230,708 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-sdk/middleware-stack 还在维护吗?

最新版本 3.374.0 发布于 2023/07/21(3 年前);至今共发布 120 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/11/20。作者已将其标记为弃用,新项目建议寻找替代方案。