在这个项目的官方文档(https://doc.cms.talelin.com/server/)里有对目录结构的说明,如下所示:
app ├── api # api 层 │ ├── cms # 关于 cms 的 api │ │ ├── admin.js │ │ ├── log.js │ │ ├── test.js │ │ └── user.js │ └── v1 # 普通api │ └── book.js ├── config # 配置文件目录 │ ├── code-message.js # 返回成功码错误码和返回信息配置 │ ├── log.js # 日志配置文件 │ ├── secure.js # 安全性配置文件 │ └── setting.js # 普通配置文件 ├── dao # 数据库操作 │ ├── admin.js │ ├── book.js │ ├── log.js │ └── user.js ├── extension # 扩展目录 ├── lib # 其它类库 │ ├── db.js # Sequelize 实例 │ ├── exception.js # 异常类库 │ ├── type.js # 枚举 │ └── util.js # 助手函数 ├── middleware # 中间件目录 │ ├── jwt.js │ └── logger.js ├── model # 模型层 │ ├── book.js │ ├── file.js │ ├── group-permission.js │ ├── group.js │ ├── log.js │ ├── permission.js │ ├── user-group.js │ └── user.js ├── plugin # 插件目录 ├── validator # 校验层 │ ├── admin.js # 校验器模块 │ ├── book.js │ ├── common.js │ ├── log.js │ └── user.js ├── app.js # 创建koa实例及应用扩展 └── starter.js # 程序的启动文件
这里我们逐个目录进行举例说明。
目录
一、api目录
api目录主要是定义了一些api接口,其中linPost、linGet、linPut、linDelete等方法是官方对原有的post、get、put、delete等方法做的二次封装,集成了权限和日志功能。比如,adminRequired就表示需要是超级管理员才有权限访问这个接口,loginRequired表示已登录的用户才有权限访问这个接口。
二、config目录
这个目录下都是一些配置文件,会影响到安全的配置都放到secure.js文件中,日志相关的配置都放到log.js文件中,接口响应code枚举值配置信息都放到code-message中,其他配置信息都放到setting.js文件中。当然这些是默认的配置文件,如果你有大块的关于某个方面的配置信息,完全可以拎出来单独建立一个文件。
三、dao目录
dao层,即data object access,是操作数据库的地方。
四、extension目录
extension目录下是一些最现有功能的拓展。如下图,对文件上传功能进行了拓展。
五、lib目录
一些自行封装的库。
六、middleware目录
自定义的一些中间件。
七、model目录
定义数据模型。
八、plugin目录
自定义插件。
九、validator目录
各种验证器函数。