## 命名规范
> 请尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。
<br>
### 目录和文件
* 项目中所有的目录名称都不可以自行修改
* ``controller`` 控制器目录下支持分级
* ``middleware`` 目录下的文件名可随意命名,也支持分级
* ``config`` 目录下的所有文件名称都不可自行修改,但可以新增文件
* ``validate`` 目录下的验证器名称需要和控制器名称对应一致,分级一致
* ``route`` 目录下的路由配置文件名可以随意命名,但不支持分级
* ``cert`` 目录下的文件可以随意命名,但在config中要引用正确
* ``logs`` 日志的输出目录,给予写权限
* ``utils`` 目录下除了index.js文件均可随意命名
<br>
### 类与函数
* 开发过程中最好使用 ``think-js-cli create`` 命令创建模版代码,这样对照着修改会减少出错
* 控制器方法需要根据实际情况来变为同步 ``async await``,如: 数据库查询动作就必须要用 ``await``
* 验证器中 ``rule`` ``message`` ``scene`` 三个属性名称为固定格式,不可修改
<br>
### 错误码
* ``10000`` 代码规范类错误,如:控制器return的不是一个对象类型
* ``20000`` 配置类错误,如:没有正确配置路由
* ``30000`` 一般为业务逻辑主动抛出的错误,如:验证参数的错误
* ``30001`` TOKEN校验错误
* ``40000`` mysql数据库错误
* ``50000`` redis错误
* ``60000`` elasticsearch错误
* ``70000`` MongoDB错误
<br>
### think-js-lib 共导出如下模块
* ``start`` 启动器
* ``Contoller`` 基控制器
* ``Model`` 模型
- 序言
- 新手指南
- 安装
- 开发规范
- 目录结构
- 配置
- 路由
- 路由定义
- 路由中间件
- 控制器
- 控制器定义
- 内置showSuccess方法
- 内置ApiException方法
- 参数获取器getParams
- 网络请求器Fetch
- 内置工具函数
- JWT的使用
- 验证
- 验证器
- 验证规则
- 自定义验证规则
- 混合验证规则
- 分场景验证
- 数据库
- 连接数据库
- 查询数据
- 链式操作
- where
- whereOr
- whereBetweenTime
- limit
- page
- count
- order
- field
- alias
- group
- distinct
- 添加数据
- 更新数据
- 删除数据
- 联表查询
- SQL调试
- 模型
- 视图
- 模板渲染(废弃)
- 模板变量(废弃)
- 错误和日志
- 异常处理
- 日志处理
- 命令行
- 扩展库
- 使用Redis
- get
- set
- del
- hget
- hset
- hdel
- decrby
- incrby
- rpush
- rpop
- 使用MongoDB
- 模型
- 新增
- 删除
- 修改
- 查询
- 使用ElasticSearch
- 使用阿里云OSS
- 阿里短信服务
- 微信支付
- 支付宝支付
- 部署
- 更新日志