跳过向路由中间件发送请求体

跳过向路由中间件发送请求体

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Vercel 新增 skipMiddlewareRequestBody 选项,允许路由中间件跳过接收客户端请求体,以减少 Fast Origin Transfer 用量并改善首字节时间,尤其适合大请求体。仅在中间件不读取请求体时启用,Vercel Functions 和重写目标仍能收到请求体。可在 vercel.json 或 vercel.ts 中设为 true,需重新部署生效,默认关闭。

🔎

延伸解读

启用条件与风险

该选项仅适用于路由中间件不读取请求体的场景。如果中间件逻辑依赖请求体内容,启用后可能导致功能异常。因此,在开启前需确认中间件没有解析或使用请求体,否则应保持默认关闭。

对下游处理的影响

跳过中间件接收请求体后,Vercel Functions 和重写目标仍能正常收到请求体。这意味着你可以在这些下游环节中读取和处理请求体,而不会丢失数据。因此,将请求体处理逻辑移至函数或重写目标是一种可行的适配方式。

配置与生效方式

可在 vercel.json 或 vercel.ts 中将 skipMiddlewareRequestBody 设为 true。修改后需要重新部署项目才能生效。该选项默认值为 false,因此现有项目不会自动改变,只有显式启用才会应用。

❓

Q&A

Vercel 的 skipMiddlewareRequestBody 选项是什么?

skipMiddlewareRequestBody 是 Vercel 新增的一个选项,允许路由中间件跳过接收客户端请求体,从而减少 Fast Origin Transfer 用量并改善首字节时间。

启用 skipMiddlewareRequestBody 有什么好处?

它可以减少中间件调用产生的 Fast Origin Transfer 用量,并改善首字节时间,尤其对请求体较大的请求效果明显。

在什么情况下应该启用 skipMiddlewareRequestBody?

仅当你的路由中间件不读取请求体时才应启用。Vercel Functions 和重写目标仍然会收到请求体,因此可以在那里读取和处理。

如何在 vercel.json 中配置 skipMiddlewareRequestBody?

在项目的 vercel.json 文件中添加 "skipMiddlewareRequestBody": true 即可。

如果使用 TypeScript 配置文件,如何设置 skipMiddlewareRequestBody?

在 vercel.ts 文件中添加 skipMiddlewareRequestBody: true 到导出的配置对象中。

启用 skipMiddlewareRequestBody 后需要重新部署吗?默认值是什么?

需要重新部署项目才能使更改生效。该选项默认值为 false,因此现有项目除非手动启用,否则保持不变。

🏷️

标签

➡️

继续阅读