# todo **Repository Path**: go-learner/todo ## Basic Information - **Project Name**: todo - **Description**: No description available - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # todo ### 介绍 这是一个TODO项目。前端使用Vue, 后端使用gin, 数据库使用MySQL。这个项目用来研究前后端分离开发 ### 部署 #### 一、创建数据库 1. 导入数据接口,并创建`todo`数据库 ```bash $ mysql < scripts/database.sql ``` 2. mysql授权 ```bash MySQL> grant all on todo.* to 'todo'@'127.0.0.1' idedentified by 'todo'; MySQL> flush privileges; ``` #### 二、配置Nginx `nginx` 添加虚拟主机,配置大致如下, 然后重载`nginx` ``` server { listen 80; server_name localhost; location / { root /data/wwwroot/todo; index index.html index.htm; } location /api/todo { proxy_pass http://127.0.0.1:8080; } } ``` #### 三、启动Todo-server ``` $ cd pkg/todo-server $ go build . $ ./todo-server -cfg config.json ``` ### 四、部署前端 ``` $ mkdir /data/wwwroot/todo $ yes | cp -rapv public/* /data/wwwroot/todo/ ``` ### 五、部署结果 ![部署结果](./screen.png) ## 配置文件说明 配置文件示例`config.json` ```json { "username": "todo", "password": "todo", "hostname": "127.0.0.1", "port": 3306, "database": "todo", "listen": "127.0.0.1:8080", "auth": { "todo": "todo" } } ``` - `username` 链接MySQL数据库的用户名 - `password` 链接MySQL数据库的密码 - `hostname` MySQL数据的主机名 - `port` MySQL监听的端口 - `listen` todo-server监听的地址 - `auth` http basic 认证使用的账号密码,是一个字典,其中key为用户名,value为密码 ## 总结 前后端开发给我最大的感受是,当页面样式变动时,不用去找后端了。部署时也能分开部署。在接口定义好之后,并搭建好`mock server`, 前端的进度不会受到后端的影响。后端的进度也不会受到前端的影响。维护时也能分开维护,招聘人员也能更好的招聘了。扯远了/(ㄒoㄒ)/~~