跳转到内容

超时中间件

timeout 是一个中间件工厂函数,当请求处理超过指定时间未返回时,自动中止并返回 408 Request Timeout 响应,防止慢请求拖垮服务。

import { timeout } from "@ventostack/core";
app.use(timeout({ ms: 5000 }));

超时后返回的响应格式:

{ "error": "请求超时" }
选项类型默认值说明
msnumber30000超时时间(毫秒)
messagestring"请求超时"超时响应消息

完整类型定义:

interface TimeoutOptions {
/** 超时时间(毫秒),默认 30000 */
ms?: number;
/** 超时响应消息,默认 "请求超时" */
message?: string;
}
function timeout(options?: TimeoutOptions): Middleware;
  • 超时后返回状态码为 408,响应体为 JSON 格式
  • 内部使用 AbortControllerPromise.race 实现,不依赖平台特定 API
  • 建议将超时中间件放在中间件链的靠前位置,确保所有后续处理都受超时保护