前后端分离的开发模式越来越主流,前端在和后端的开发协调中需要一些伪造的数据,EasyMock是很好的一款产品用来应用到此场景,其也有官方的公共地址,直接百度就可以找到注册之后就可以使用,但是实际情况中我们有的时候也需要自己进行EasyMock的搭建,我自己也进行了搭建,遇到过一些问题,在这里分享给大家。
基本环境
CentOS(7.0)+ NodeJs(8.9.1)+ MongoDB(3.4.20)+ Redis(3.2.1单机部署)
因为对NodeJs不怎么了解,在部署的过程中,遇到了最大的坑,就是NodeJs的版本问题。重要的事情说三遍:NodeJs的版本不宜过高,选8.9.1就可以。NodeJs的版本不宜过高,选8.9.1就可以。NodeJs的版本不宜过高,选8.9.1就可以....T__T
关于这些环境的部署都很简单,这里就不细说了,之后我也可能会在后续的文章里补充上来(大概率不会)。如果之前已经安装了NodeJs比较高的版本,可以考虑使用NVM进行版本的管理。
MongoDB数据库的准备
-
控制台键入命令 mongo
-
创建新的数据库 use easymock
-
查看数据库 show dbs
此时并没有我们的esaymock的数据库,是因为数据库中还没有数据,接下来我们插入一条数据。
-
插入一条数据 db.esaymock.insert({"name":"Curry"})
-
再次查看数据库 show dbs
源代码和依赖的下载
$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install
修改配置文件
esay-mock目录下找到config目录下的default.json文件,其内容如下:
{
"port": 7300,//easymock项目启动的端口
"host": "0.0.0.0",
"pageSize": 30,
"proxy": false,
"db": "mongodb://localhost/easymock",// 不需要自己新建数据库,在启动的easymock新建接口即可
"unsplashClientId": "",
"redis": {
"port": 6379,//redis端口
"host": "localhost"
},
"blackList": {
"projects": [], // projectId,例:"5a4495e16ef711102113e500"
"ips": [] // ip,例:"127.0.0.1"
},
"rateLimit": { // https://github.com/koajs/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
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
对项目采用的端口号,以及Redis和MongoDB(最好加入端口号)采用的地址和端口号进行修改。
测试启动
此方式仅仅是为了验证是否部署成功,这种方式会在终端关闭之后停掉服务,所以使用的话,还需要进行下面的服务器部署操作。
$ npm run dev
# 访问 http://127.0.0.1:7300
直接登录并且选择创建用户
服务器部署方式启动
1.前端静态资源构建打包
$ npm run build
- 全局安装 PM2
$ [sudo] npm install pm2 -g
3.用 PM2 启动
$ NODE_ENV=production pm2 start app.js
然后就可以在后台像之前一样访问EasyMock了,至此基本的部署就完成了。求真至善,登崇俊良。我们下一期再见。