立诚勿怠,格物致知
It's all about connecting the dots

lin-cms-koa源码阅读之:目录结构

在这个项目的官方文档(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目录

各种验证器函数。

赞(1) 打赏
文章名称:《lin-cms-koa源码阅读之:目录结构》
文章链接:https://www.orzzone.com/source-code-read-lin-cms-koa-structure.html
商业联系:yakima.public@gmail.com

本站大部分文章为原创或编译而来,对于本站版权文章,未经许可不得用于商业目的,非商业性转载请以链接形式标注原文出处。
本站内容仅供个人学习交流,不做为任何投资、建议的参考依据,因此产生的问题需自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力提供更多优质内容!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册