Why Easy Mock
前后端分离开发模式是目前常见的一种开发方式,双方在约定开发接口时,常见的约定方式一般有 Wiki 或 Markdown 文档约定,而请求的模拟数据则常常直接写在代码里,到联调时再更新接口请求 URL。或者利用 Charles、Fiddler 等代理工具拦截请求。
上述联调方式各有优劣势,有代码入侵和配置繁琐等各种问题。
Easy Mock 是一个可视化且能快速生成模拟数据的持久化服务。利用它我们可以:
- 快速生成模拟数据
- 有可视化界面进行项目管理
- 支持接口代理、JSONP、团队协同编辑
如何安装 Easy Mock
1. 准备滴滴云服务器
首先我们需要有一台云服务器来部署服务,可在滴滴云上进行购买。具体的购买步骤可参考帮助文档。
下面我们看到的是已经购买好的云服务器。配置为 2核 4G, 系统为 CentOS7.6。
购买完毕后,远程登录服务器,进行服务安装的安装与部署。以 dc2-user 的身份登录后,可以通过 sudo su
来切换至管理员身份进行安装。
2. 安装 Node
我们将 Node 服务安装在 /usr/local
目录下。经过实验,10.14.0 会有兼容性问题,这里我们安装 8.9.0 版本。
## 下载node
cd /usr/local/src
wget https://nodejs.org/dist/v8.9.0/node-v8.9.0-linux-x64.tar.xz
## 解压
tar xf node-v8.9.0-linux-x64.tar.xz
cd /usr/local
## 重命名
mv src/node-v8.9.0-linux-x64 node
## 将node添加至path
vi ~/.bashrc
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
source ~/.bashrc
## 安装成功
node -v // 安装成功会显示Node版本
3. 安装 MongoDB
cd /usr/local/src
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
cd /usr/local
mv src/mongodb-linux-x86_64-3.0.6 mongodb
## path
vi ~/.bashrc
export MONGO_HOME=/usr/local/mongodb
export PATH=$MONGO_HOME/bin:$PATH
source ~/.bashrc
下载完毕之后,创建配置文件并启动服务:
## 创建数据目录
mkdir /data
mkdir /data/mongo
## 创建配置文件
vi /data/mongo/mongodb.cnf
其中配置文件的内容如下:
## /data/mongo/mongodb.cnf
dbpath=/data/mongo/
logpath=/data/mongo/mongo.log
logappend=true
fork=true
port=27017
journal=true
通过读取配置文件启动 MongoDB 服务:
## 配置文件方式启动mongo
mongod -f /data/mongo/mongodb.cnf
mongod -f /data/mongo/mongodb.cnf & (放到后台执行)
4. 安装 Redis
cd /usr/local/src
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzf redis-2.8.17.tar.gz
cd redis-2.8.17
make
Make 完后 redis-2.8.17 目录下会出现编译后的 Redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli,两个程序位于安装目录 src 目录下。
下面启动 Redis 服务:
cd src
./redis-server &
4. 部署服务
如果没有 Libra 目录就新建该目录,我们将应用放在/usr/libra
目录下:
cd /usr/libra
git clone https://github.com/easy-mock/easy-mock.git
## 安装依赖
cd easy-mock && npm install
## 运行
[root@1.1.1.1 easy-mock]# npm run dev
> easy-mock@1.6.0 dev /usr/libra/easy-mock
> nodemon --ignore views/ --ignore public/ app
[nodemon] 1.14.11
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
server started at http://0.0.0.0:7300
通过上面的部署,便可以访问 IP:7300端口访问 Easy Mock 的页面了。
npm run dev
命令会进行热更新,对于开发者体验较好,如果有代码改动会重新 load,马上生效。
如果需要部署稳定的生产版本,可根据 GitHub 文档部署生产版本。还可以通过 PM2 在后台运行该 Node 服务。
## 安装pm2
npm install -g pm2
## 使用pm2 运行全需要先build
npm run build
NODE_ENV=production pm2 start app.js
常见问题
Node 版本太高 (10.14.0 ),导致运行时候报错,最好安装 8.9.x 的 Node 版本。
Error: listen EADDRINUSE 0.0.0.0:7300
at Server.setupListenHandle [as _listen2] (net.js:1334:14)
at listenInCluster (net.js:1382:12)
at doListen (net.js:1508:7)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1361:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
[nodemon] app crashed - waiting for file changes before starting...