# 框架分层

Astroboy 框架分层是在 Koa 洋葱模型基础之上,并结合传统 MVC 分层架构,如下图所示:

框架分层

# 1. 中间件层

在 Astroboy 框架内部,已经封装了几个最基础的中间件:

  • astroboy-body 请求体解析中间件
  • astroboy-router 路由解析中间件
  • astroboy-security-xss XSS 过滤中间件
  • ...

中间件一般在什么场景下使用?

  • 登录态校验
  • 请求日志埋点

# 2. Router 路由层

根据 HTTP 请求路径,转发请求到 Controller 某个具体的方法。

# 3. Controller 控制器层

接收 HTTP 请求参数,并对请求参数进行校验,然后调用一个或多个 Service 层提供的方法,最后把 Service 层返回的数据返回给前端,可以是 HTML 字符串或 JSON 格式的数据。

# 4. Service 服务层

该层主要承载业务逻辑,但凡是业务逻辑的,都应该写在这一层。