中间件
@esmx/core 提供一组 connect 风格的中间件辅助函数,用于以正确的缓存头服务模块的静态资源(即构建产物 dist/client)。esmx.middleware 正是由它们组合而成,你也可以在自建 HTTP 服务器时直接组合使用。
Middleware
connect 风格中间件:接收 Node 的请求、响应对象和 next 回调,要么处理该请求,要么调用 next() 交由后续处理。兼容 http、Express、Koa(经适配)及大多数 Node 服务器。
createMiddleware(esmx)
创建为 Esmx 实例中每个模块服务静态资源的中间件。它会:
- 依据模块配置为每个模块构建静态文件处理器,
- 逐请求应用缓存控制,
- 对内容指纹(不可变)文件采用长期缓存。
mergeMiddlewares(middlewares)
将中间件数组组合为单个中间件,按顺序执行,直到某个处理该请求或链结束(调用外层 next)。适合把 createMiddleware 的产物与你自己的处理器组合起来。
isImmutableFile(filename)
当文件路径匹配 Esmx 的内容指纹(不可变)资源模式时返回 true——即可安全地以 Cache-Control: public, max-age=31536000, immutable 服务。createMiddleware 内部用它为每个资源决定缓存策略。
相关
- Esmx —— 其
middleware由这些辅助函数组合而成的核心类 - RenderContext —— 渲染后的 HTML 如何引用这些资源