阅读 57

前后端开发分离之Easy-mock本地化部署

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

Easy Mock 是一个可视化,并且能快速生成 模拟数据 的持久化服务。 忘掉下面这些实用但麻烦的 Mock 方式吧。

常见的 Mock 方式:

  • 将模拟数据直接写在代码里
  • 利用 JavaScript 拦截请求
  • 利用 Charles、 Fiddler 等代理工具拦截请求

为了更快捷的定义接口且mock接口数据,减轻前后端对接时的工作量,可以使用easyMock平台,鉴于easy-mock在线服务经常不稳定,容易丢失数据,所以本地化部署:

安装 node(>=v8.9,但是不支持v10.x) & MongoDB(>=v3.4) & Redis(>=v4.0)

1. nodejs本地部署

[root@localhost /]$ cd /opt
[root@localhost /opt]$ wget http://nodejs.org/dist/v11.5.0/node-v11.5.0-linux-armv7l.tar.xz
[root@localhost /opt]$ tar  xf node-v11.5.0-linux-.armv7.tar  -C  /usr/local/nodejs
[root@localhost /opt]$ cd /usr/local/
[root@localhost /local]$ mv node-v5.10.1-linux-x64/  nodejs
[root@localhost /local]$ ln -s /usr/local/nodejs/bin/node /usr/bin  # 创建软链,相当于win下的环境变量,可以直接运行
[root@localhost /local]$ ln -s /usr/local/nodejs/bin/npm /usr/bin
[root@localhost /local]$ node -v # 查看版本
复制代码

tips: 这个ln操作。也可以配置环境变量:vim /etc/profile 加入变量配置,然后source /etc/profile 立即生效

2. Mongodb本地部署

[root@localhost /]$ cd /opt
[root@localhost opt]$ wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.10.tgz
[root@localhost opt]$ tar zxf mongodb-linux-x86_64-rhel70-3.2.10.tgz
[root@localhost opt]$ mv  mongodb-linux-x86_64-rhel70-3.2.10  /data/mongodb
[root@localhost opt]$ mkdir -p /data/mongodb/db  /data/logs/mongodb
[root@localhost opt]$ vim  /etc/mongod.conf   #配置mongodb端口,log路径,db路径
port=10012  #默认27017
bind_ip = 0.0.0.0  #默认是127.0.0.1 方便客户端远程连接
dbpath=/data/mongodb/db
logpath=/data/mongodb/logs//mongod.log
fork = true
[root@localhost opt]$ cd  /data/mongodb/bin
[root@localhost bin]$ nohup ./mongod -f /etc/mongod.conf &   # --dbpath=可以指定数据库路径,默认路径是/data/db需要手动创建 --port指定端口
[root@localhost bin]$ ps -aux|grep mongod  # 查看启动进程
[root@localhost bin]$ ./mongo --port=00000   # 不指定端口,它不会去连接配置的port,而是连接的默认接口27017
>use admin;
>db.createUser({user:"root",pwd:"yourpasswd",roles:["root"]});
>db.auth("root","yourpasswd");
复制代码

3. redis本地部署

[root@localhost /]$ cd /opt
[root@localhost /opt]$ wget http://download.redis.io/releases/redis-2.8.0.tar.gz
[root@localhost /opt]$ tar zxf redis-2.8.0.tar.gz
[root@localhost /opt]$ mv redis2.8   /data/redis
[root@localhost /opt]$ yum install gcc cpp binutils glibc glibc-kernheaders glibc-common  glibc-devel  tcl 
[root@localhost /redis]$ make && make test
[root@localhost /redis]$ cd src
[root@localhost /src]$ make install
[root@localhost /src]$ ./redis-server  &
[root@localhost /src]$ ./redis-server  /data/redis/etc/redis.conf
[root@localhost /opt]$ service redisd  on  / off  开机自启/关闭
[root@localhost /opt]$ service redisd stop /start
[root@localhost /opt]$ redis-server  -h localhost -p 10015 -a yourAuthpasswd
复制代码

4. 本地克隆easy-mock,并部署

[root@localhost /opt]$ git clone https://github.com/easy-mock/easy-mock.git
[root@localhost /opt]$ cd easy-mock && npm install
[root@localhost /easy-mock]$ vim  config/default.json
{
  "port": 7300,  #easy-mock 服务访问端口
  "host": "0.0.0.0",
  "pageSize": 30,
  "proxy": false,
  "db": "mongodb://localhost/easy-mock",  #其他都是保持默认设置
  "unsplashClientId": "",
  "redis": {
    "keyPrefix": "[Easy Mock]",
    "port": 6016,  #redis服务端口
    "host": "localhost",
    "password": "hcpdev0327", #redis——auth认证密码,没有会报错
    "db": 8
  },
[root@localhost /easy-mock]$ npm run dev # 启动easy-mock服务,即可以通过浏览器访问了。
复制代码

tips:上面的启动命令,在使用nohup时,也没在后台执行,会退出,写入shell脚本也不行。最后放弃了,使用node app.js命令即可

tips:当在内网服务器部署时,推荐使用 PM2 来守护你的应用进程。

[root@localhost /easy-mock]$ npm install pm2 -g
[root@localhost /easy-mock]$ npm run build
[root@localhost /easy-mock]$ NODE_ENV=production pm2 start app.js
复制代码

5. 至此,整个Easy-mock本地化在linux环境下部署完成,访问ip+port,就可以登录了,如果不存在的账号,系统则会自动创建。

6. 总结

终于为什么要mock,提倡前后端开发分离,必然是为了提高开发效率,节省更多的时间来测试,保障项目发布时间。

文章分类
后端
文章标签