在做前后端分离项目的时候,前端工程师往往需要很多mock数据;人工手造数据不太现实,于是可以利用Easy-mock来完成这项大工程。
easy-mock是大搜车团队开源的用于mock后端响应到前端的数据,你可以在easy-mock官网上创建自己的项目接口,但官网经常无法访问,这就很蛋疼了。不过,好在easy-mock是个开源项目,所以我们可以下载源码自行搭建服务。经过两天的折腾,终于搞定了;下面记录搭建的过程以及踩过的坑。
系统环境:linux centos7 64位 虚拟机环境安装linux系统
用户:root
https://npm.taobao.org/mirrors/node/v8.10.0/node-v8.10.0-linux-x64.tar.xz
cd /usr/local // 进入node安装目录,后续软件统一都安装在该目录下
rz // 利用rz命令上传本地文件到linux服务器,如果没有该命令可以使用yum install lrzsz安装
xz -d node-v8.10.0-linux-x64.tar.xz
tar -xvf node-v8.10.0-linux-x64.tar
mv node-v8.10.0-linux-x64 nodejs // 重命名为nodejs
vi /etc/profile // 配置环境变量
// 在文件中增加如下环境变量:
export NODE_HOME=/usr/local/nodejs
export PATH=${
PATH}:$NODE_HOME/bin
source /etc/profile // 使其生效
node –v // 查看当前node版本
npm –v // 查看当前npm版本
http://download.redis.io/releases/redis-4.0.14.tar.gz
官网要求redis版本必须大于V4.0
cd /usr/local // 进入安装目录
rz // 上传redis安装包
tar xvzf redis-stable.tar.gz // 解压
cd redis-4.0.14/ // 进入到解压后的文件夹,进行编译
yum install -y gcc // 编译前使用yum安装gcc编译器
make // 编译,需要一会儿;编译完成后会生成redis-server和redis-cli
cp src/redis-server /usr/local/bin // redis服务启动命令放到全局,便于后续利用
cp src/redis-cli /usr/local/bin // redis客户端命令放到全局,便于后续利用
vi redis.conf // 打开redis.conf配置文件,后续启动需要依赖此配置文件
// 修改该文件的三处配置:
bind 127.0.0.1 修改为 # bind 127.0.0.1 使得外部ip可以访问
protected-mode yes修改为protected-mode no // 不启动保护模式,便于外部访问
daemonize no修改为daemonize yes
redis-server redis.conf // 利用redis.conf配置文件启动redis服务
// 若想要看redis-server服务是否启动,可以通过下面的命令查看:
netstat -lnap | grep "6379" // 6379是redis服务默认的端口号
// 关闭redis服务使用命令 在修改配置文件之前确保redis服务没有启动
redis-cli shutdown
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz
cd /usr/local
tar zxvf mongodb-linux-x86_64-3.6.13.tgz
mv mongodb-linux-x86_64-3.6.13.tgz mongodb // 重命名为mongodb
vi /etc/profile // 增加全局配置
// 配置文件增加:
export MONGODB_HOME=/usr/local/mongodb
export PATH=${
PATH}:$NODE_HOME/bin:$MONGODB_HOME/bin
source /etc/profile // 使配置文件生效
mkdir -p /usr/local/mongodb/data // 创建mongodb数据文件
mkdir -p /usr/local/mongodb/logs // 创建mongodb日志文件
cd /usr/local/mongodb/
vi mongo.conf // 新建mongodb配置文件
// 配置文件内容如下
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongo.log
logappend=true
journal=true
quiet=true
bind_ip_all=true
port=27017
fork=true // 后台运行
cd /usr/local/mongodb
bin/mongod –f mongo.conf // 启动mongodb服务
若搭建过程遇见48,100等错误代码,可以参考此方法解决。
yum install –y git // 安装git
git clone https://github.com/easy-mock/easy-mock.git // git克隆仓库代码
cd easy-mock
npm install // 安装项目依赖的插件 耗时较长
vi config/default.json // 修改配置文件
把配置文件内两处name为“host”的值改为ip,这样便于提供服务。修改后的配置文件为:
{
"port": 7300,
"host": "192.168.198.129", // localhost修改为ip
"pageSize": 30,
"proxy": false,
"db": "mongodb://127.0.0.1/easy-mock",
"unsplashClientId": "",
"redis": {
"keyPrefix": "[Easy Mock]",
"port": 6379,
"host": "192.168.198.129", // localhost修改为ip
"password": "",
"db": 0
},
"blackList": {
"projects": [],
"ips": []
},
"rateLimit": {
"max": 1000,
"duration": 1000
},
"jwt": {
"expire": "14 days",
"secret": "shared-secret"
},
"upload": {
"types": [".jpg", ".jpeg", ".png", ".gif", ".json", ".yml", ".yaml"],
"size": 5242880,
"dir": "../public/upload",
"expire": {
"types": [".json", ".yml", ".yaml"],
"day": -1
}
},
"ldap": {
"server": "",
"bindDN": "",
"password": "",
"filter": {
"base": "",
"attributeName": ""
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
systemctl stop firewalld.service // 关闭防火墙
npm install –g pm2 //全局安装pm2
pm2 –v // 查看pm2版本 如果出现未找到pm2命令,则执行下面命令
ln -s /usr/local/nodejs/node_global_path/bin/pm2 /usr/local/bin //建立软连接
pm2 start /usr/local/easy-mock/app.js // 启动后台服务