CentOS7搭建EasyMock

前言

前后端分离的开发模式越来越主流,前端在和后端的开发协调中需要一些伪造的数据。伪造数据的方式有好几种,一种就是使用插件Mock.js,该插件可以生成随机数据,拦截 Ajax 请求。还有一种就是直接本地json文件模拟。当然你还有第三种选择——EasyMock。EasyMock也有官方的公共地址,直接百度就可以找到,注册之后就可以使用,但用的人太多速度就一言难尽了。所以,你可以自己搭建一个本地的EasyMock。

环境
  • Vmware虚拟机软件

  • Centos7镜像

  • Node.js(v8.x,不支持 v10.x

  • MongoDB(>= v3.4

  • Redis(>= v4.0

虚拟机的安装就不说了,教程百度到处都是

Node.js
  • 首先进系统,执行如下命令
1
2
3
4
5
6
7
8
9
10
11
12
mkdir -p /opt/nodejs #创建目录,作为安装node.js的目录
yum install wget #安装wget工具

wget https://nodejs.org/dist/v8.17.0/node-v8.17.0-linux-x64.tar.xz #下载node.js
tar xvf node-v8.17.0-linux-x64.tar.xz -C /opt/nodejs #解压node.js到刚才创建的目录

ln -s /opt/nodejs/node-v8.17.0-linux-x64/bin/node /usr/local/bin/node #创建node的软连接
ln -s /opt/nodejs/node-v8.17.0-linux-x64/bin/npm /usr/local/bin/npm #创建npm的软连接

npm install nrm -g #全局安装nrm工具
ln -s /opt/nodejs/node-v8.17.0-linux-x64/bin/nrm /usr/local/bin/nrm #创建nrm软连接
nrm use taobao #更换npm源为淘宝镜像源,速度更快
  • 创建软连接是为了能够全局使用该命令,下载压缩包手动安装的方法,就需要创建软连接,即使是你通过npm全局安装的包,要使用也需要创建软连接

MongoDB
  • vim /etc/yum.repos.d/mongodb-org-4.2.repo
1
2
3
4
5
6
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
  • mongodb管理命令:
1
2
3
4
yum install -y mongodb-org #安装mongodb
systemctl start mongod.service #启动MongoDB服务
netstat -natp | grep 27017 #MongoDB默认端口是27017,查看是否开启
ps -aux | grep mongod #查看数据库的进程是否存在
安装Redis
  • 在CentOS和Red Hat系统中,首先添加EPEL仓库,然后更新yum源:
1
2
3
4
yum install epel-release #添加epel仓库
yum update #更新yum源
yum -y install redis #安装Redis数据库
systemctl start redis #启动Redis服务

为了可以使Redis能被远程连接,需要修改redis的配置文件,路径为 /etc/redis.conf

vim /etc/redis.conf

注释这一行(在这一行前添加#号表示注释):

1
# bind 127.0.0.1

推荐给Redis设置密码,取消注释这一行(删除这一行前的#号):

1
# requirepass foobared

foobared 即当前密码,可以自行修改为其它,比如修改密码为 123456

1
requirepass 123456
  • 然后重启Redis服务,管理命令如下:
1
2
3
4
5
6
7
systemctl restart redis #重启redis
systemctl start redis.service #启动redis服务器
systemctl stop redis.service #停止redis服务器
systemctl restart redis.service #重新启动redis服务器
systemctl status redis.service #获取redis服务器的运行状态
systemctl enable redis.service #开机启动redis服务器
systemctl disable redis.service #开机禁用redis服务器
easy-mock配置
1
2
3
yum install git
git clone https://github.com/easy-mock/easy-mock.git
cd easy-mock && npm install

修改easy-mock项目配置,路径为:easy-mock/config/default.json

  • vim easy-mock/config/default.json

  • 将db字段改为如下,即添加了 mongodb 的端口

    1
    "db": "mongodb://localhost:27017/easy-mock"
  • password字段改为你自定义的密码,比如我的

    1
    "password": "123456"
easy-mock部署
1
2
3
4
5
6
npm run build #打包构建项目
npm install pm2 -g #安装pm2工具
ln -s /opt/nodejs/node-v8.17.0-linux-x64/bin/pm2 /usr/local/bin/pm2 #创建软连接
pm2 start app.js #使用pm2启动easy-mock项目
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁止防火墙开机自起

浏览器访问 虚拟机ip:7300 即可正常使用自己搭建的 easy-mock 工具啦

遇到的问题
  • 若项目打开正常,但是添加接口报错或者预览接口为空白,那么可能是你的redis没有启动,或者没有连接上mongodb,需要注意查看easy-mock项目配置文件 config/default.json 中db字段的地址是否添加了端口号27017
  • 注意关闭防火墙,不然可能无法访问部署成功的项目

本文参考自:centos7.6安装easy-mock ,本文对该文章的一些步骤进行了补充和修改