对 koajs 的学习已经持续一段时间,对于"用"这一层面基本掌握。学习之后,总是希望能实际的应用到项目之中。贸然给现有项目大换血是不现实的,姑且先拟一个小项目付诸实践。
在尝试使用 koajs 时,我依旧采用严格的 MVC 模式。M 做为数据模型层,主要负责业务数据的管理和操作,来源于数据库操作或者api调用。V 做为视图层,主要负责站点前台的展示。C 做为业务控制层,主要负责对站点业务流程的处理。基于这样的思路,首先建立起项目的基本目录结构:
+ configs(项目配置文件目录)++ build(项目编译相关配置) *+ controllers(项目业务控制代码目录)+ kits(常用工具包)+ middlewares(项目中间件)+ models(业务数据对象,可以是操作数据库,可以是来源于调用api)+ public(静态资源目录)++ src(项目静态资源源文件)++ publish(项目静态资源发布文件,发布自动生成)+ routers(路由配置文件目录)+ test(项目相关测试文件)+ views(项目视图目录)++ dev(开发视图文件)++ pro(发布视图文件,发布自动生成)+ app.js(项目入口)
注:项目目录是让写程序和看程序的人能一眼了解项目结构,我且主观的认为这样的结构是能让看到的人一目了然
对于以中间件为一级公民的koajs,在使用中我主要使用以下几个关键技术:
-
路由:
-
视图:
-
会话: +
-
模版引擎:
-
API请求:
-
日志:
-
缓存:
注:条条大路通罗马,所谓的技术选择全然是个人的爱好
剔除业务相关的功能,我将此项目的架子抽了出来,命名为koa-skeleton,意为骨架,希望供大家参考一二,项目地址: