Modern.js 将大部分项目需要的服务端能力都进行了封装,通常项目无需进行服务端开发。但在有些开发场景下,例如用户鉴权、请求预处理、添加页面渲染骨架等,项目仍需要对服务端进行定制。
开启自定义 Server 功能,需要执行以下步骤:
@modern-js/server-runtime
及 ts-node
依赖并安装。tsconfig
的 include
中添加 server
。server/modern.server.ts
文件,可以在这个文件中编写自定义逻辑。server/modern.server.ts
文件中添加如下配置来扩展 Server:
其中 Plugin 中可以定义 Middleware 与 RenderMiddleware。 中间件加载流程如下图所示:
defineServerConfig
类型定义如下:
Middleware 支持在 Modern.js 服务的请求处理与页面路由的流程前后,执行自定义逻辑。 即自定义逻辑既要处理接口路由,也要作用于页面路由,那么 Middleware 是不二选择。
如果仅需要处理 BFF 接口路由,可以通过检查 req.path
是否以 BFF prefix
开头,来判断是否为 BFF 接口请求。
必须执行 next
函数才会执行后续的 Middleware。
如果只需要处理页面渲染的前后执行逻辑,modern.js 也提供了渲染中间件。
Modern.js 支持在自定义插件中为 Server 添加上述 Middleware 及 RenderMiddleware。