egg MVC分层原理浅析

821 阅读2分钟

核心思想

egg的核心思想是使用node通过目录读取到对应的文件,再对app进行扩展。

路由处理

  1. npm init -y

  2. npm i

  3. 规范

所有路由,都要放在routes⽂件夹中

若导出路由对象,使⽤ 动词+空格+路径 作为key,值是操作⽅法

若导出函数,则函数返回第⼆条约定格式的对象

4.npm i koa-router -S

5.新建routes/index.js routes/user.js

6.新建loader.js

7.新建index.js作为入口

8.命令行输入node index.js

9.输出结果

10.访问路由

11.新建init.js 封装初始化文件

12.修改index.js文件 执行node inde.js(结果同上)

将routes的业务逻辑抽离至controller层

约定: controller⽂件夹下⾯存放业务逻辑代码,框架⾃动加载并集中暴露

1.新建controller/index.js controller/user.js

2.修改 routes/index.js routes/user.js

  • 这里利用了柯里化传入app,将对象改造成接受参数的函数。

3.修改loader.js初始化router逻辑

4.修改init.js

5.loader.js加入初始化controller

6.修改init.js

7.执行node inde.js

8.访问路由

将通用业务逻辑抽离至service文件夹

1.新建service/msg.js

2.loader.js加入初始化service

controller调用service

1.新建controller/msg.js

  • 同理这里利用了柯里化传入app,将对象改造成接受参数的函数。

2.修改loader.js初始化controller逻辑

3.修改init.js

4.新建routes/msg.js

5.执行node inde.js

6.访问路由

routes调用service

1.修改routes/msg.js

2.修改loader.js初始化router逻辑

3.执行node inde.js

4.访问路由

接入数据库配置(mongodb)

1.新建model/user.js

2.新建config/index.js

3.loader.js加入初始化config

4.修改init.js

5.新建routes/mog.js

6.执行node inde.js

7.访问路由

接入中间件

1.新建middleware/log.js

2.修改config/index.js

3.修改loader.js初始化config

访问路由

接入定时任务

  1. npm install egg-schedule -S

1.新建schedule/task.js

2.loader.js加入初始化定时任务

3.修改init.js

node index.js 输出结果