1. 程式人生 > >在滴滴雲上使用 Easy-Mock 進行前後端資料聯調

在滴滴雲上使用 Easy-Mock 進行前後端資料聯調

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
## 執行
[[email protected] easy-mock]# npm run dev

> [email protected] 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...