SuperAPI AI 工具集

middleware

通用与其它

查看项目

更新于 10-15 23:41

技能介绍

用途:Middleware 用于定制服务器函数(server functions)与服务器路由的行为,可组合,中间件之间能相互依赖形成链。

主要能力:分为两类。请求中间件(Request Middleware)作用于所有服务器请求(SSR、路由、函数),仅用 .server(),无输入校验与客户端逻辑,由 createMiddleware() 创建。服务器函数中间件(Server Function Middleware)仅作用于服务器函数,含 .client() 与 .server(),支持 .validator() 输入校验,由 createMiddleware({ type: 'function' }) 创建。请求中间件不能依赖服务器函数中间件,反之可以。

使用方式:用 createMiddleware() 创建,通过 .middleware([...]) 挂载到 createServerFn 或服务器路由的 handlers。用 next({ context }) 沿链传递上下文;用 sendContext 在客户端与服务器间传值。可在 src/start.ts 用 createStart 配置全局 requestMiddleware 与 functionMiddleware。客户端中间件可设置 headers 与自定义 fetch,headers 会合并,后置覆盖前置,调用点覆盖全部。

限制与注意:TypeScript 强制方法顺序为 middleware() → validator() → client() → server(),顺序错误会报类型错误。校验 sendContext 的形状不等于授权,解析出的合法标识符未必属于当前用户,必须结合会话主体重新校验访问权限。会话须来自服务器可信来源(如 cookie),不能来自 sendContext。SSR 期间 .client() 回调在服务器运行,使用 localStorage、window 等浏览器 API 会抛 ReferenceError,需用 typeof window 判断或改用 cookie/headers。

适用场景:日志、鉴权、权限校验、上下文传递、请求头注入等。具体框架包名请按所用框架选择 @tanstack/<framework>-start。