@aws-sdk/medware-stack (中文(简体) )
软件包包含一个执行的中件堆栈接口. 中间软件 堆栈是一个按照指定的顺序存储中间软件并解析这些结构 中间软件变成单一的处理器.
中间软件堆有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");