# 内蒙古联通系统集成钉钉开发项目脚手架

## 实现目标
简化钉钉应用开发难度，使项目团队，可以轻松启动钉钉项目开发。脚手架实现了钉钉开发项目所需要基本功能及免登认证，可通过直接加入业务逻辑，快速实现钉钉项目开发

### 使用方法
##### 安装命令行工具
```
npm install -g nmlt-dingding-cli
```
##### 初始化钉钉项目
```
nmlt-dingding-cli init <项目名称>
```
当项目创建完成，安装依赖包
```
npm install
```
等待完成即可
### 运行方法
##### 启动前端项目（vue项目）
```
npm run serve
```

##### 启动后端项目（nodejs项目，包含钉钉开发所需的必要逻辑内容）
```
node app
```
或
```
nodemon app
```
### 首页截图
![index](http://weixin.nmict.cn/my-static/img/template-cli-index.png)

### 技术方案
前端使用了有赞出品的ui库 [Vant](https://youzan.github.io/vant/#/zh-CN/intro),采用vue、vue-router、vuex的常规vue全家桶组合。注：为方便本地调试，已将用户信息通过vuex中的状态对象dduser，进行管理.

后端采用了nodejs中的主流MVC框架Koa , 加上主流ORM框架 [Sequelize](https://sequelize.org/)

服务器端程序统一放在server，文件夹中，设计架构采用分层模式，controller + model ，复杂业务应加入service层，进行业务逻辑封装。

model采用表模型设计，每一个model对应一张数据表，通过sequelize框架，实现操作model即操作数据表的功能，自动完成ORM（对象关系映射）

### 入门配置
1. 通过 修改server下的config中的config-default.js 实现数据库连接

2. 在项目根目录下，输入如下命令，完成 表模型的创建
    ```
    node gene <表名> 
    ```
3. 在controller中，对象方法里，通过await model.<表模型>.<操作> 实现对应模型操作,具体实现请看controller下order.js
   
4. 添加访问路径，在controller加入访问接口地址，如'GET /v1/order/index'

通过以上配置，即可实现简单的数据接口开发。

### 出品单位
联通系统集成内蒙古分公司

### 联系方式
- Tencent QQ: 342878509
- E-mail: xiongmao1114@163.com

