背景:easy-mock 大家都知道腹鹉,常用的 mock 數(shù)據(jù)網(wǎng)站,但是隨著用戶越來越多,easy-mock的接口響應(yīng)速度有點時候會很慢(也跟本地網(wǎng)絡(luò)環(huán)境有關(guān))勇劣,而且接口也不穩(wěn)定,時不時就掛了潭枣。比默。。
需求:因為公司正好有docker機盆犁,供開發(fā)者自己使用命咐,所以想到了把 easy-mock 部署到本地,這樣接口的穩(wěn)定性和響應(yīng)速度得到了保證谐岁,而且對團隊開發(fā)也很有幫助醋奠。
實施:首先先看easy-mock本地部署的官方介紹,https://github.com/easy-mock/easy-mock/blob/dev/README.zh-CN.md伊佃。官方介紹的簡潔明了窜司,大致分為下面幾步:
- 安裝 node(>=v8.9) & MongoDB(>=v3.4) & Redis(>=v4.0)
- 安裝 easy-mock,更改配置文件
- 啟動 easy-mock航揉,測試項目是否可以正常啟動塞祈,能的話就可以先 Ctrl + C了
- 啟動 MongoDB 和 Redis
- npm run build,然后用 PM2 啟動 app.js
先安裝 node迷捧,這一步不多講了织咧,說一下版本,我用的是8.12.0漠秋,親測沒問題笙蒙,個人建議安裝 8.x 的版本,10.x 的雖然 LTS 了庆锦,不過有同事說用 10.x 裝的時候出現(xiàn)了問題捅位,又回退了版本。。艇搀。
安裝 MongoDB尿扯,網(wǎng)址:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/。我是用的這種方法安裝的:
安裝完成之后焰雕,輸入命令:mongod
衷笋,測試是否開啟數(shù)據(jù)庫,默認(rèn)的端口是 27017矩屁,我的環(huán)境報了幾個warning辟宗,但是不影響整個進程,沒有關(guān)注吝秕。
然后安裝 redis泊脐,直接從 https://redis.io/download,下載安裝包烁峭,解壓到根目錄下面的 opt 文件夾下容客, 可以根據(jù)自己的需求改動 redis.conf 文件,然后輸入命令 redis-server
约郁,就可以正常啟動 redis 了缩挑。
最后要安裝的就是 easy-mock,git clone 下來鬓梅,然后 npm install
调煎,安裝依賴,npm run dev
啟動項目己肮,config/default.json 可以自定義的配置,當(dāng)然不配置倒也沒關(guān)系悲关,easy-mock會自動使用 MongoDB 和 redis谎僻,不需要其他操作。easy-mock 會默認(rèn)啟動在 7300 下面寓辱,打開服務(wù)器的ip+port艘绍,查看 easy-mock 是否正常啟動,正常啟動了說明安裝階段大功告成秫筏!
到了部署階段:
首先 close 掉剛才開啟的 MongoDB 和 redis诱鞠, 然后使用 nohup & 的方式后臺啟動 mock ,這樣就在服務(wù)器上自己跑這兩個了这敬,命令:
nohup mongod -fork -dbpath path &
注意兩點:
- fork 配置的作用是航夺,自動將 mongod 進程掛到 init 進程下,詳細(xì)參考:https://blog.csdn.net/shawyeok/article/details/46486683崔涂。
- dbpath 配置的 MongoDB 的數(shù)據(jù)存儲目錄阳掐,建議指定一個專門存儲數(shù)據(jù)的文件夾內(nèi),防止誤刪。
后臺啟動 redis :
nohup redis-server &
我這里的 redis-server 是一個軟鏈缭保,相當(dāng)于打開 /opt/redis/redis-server汛闸,大家可以設(shè)置一個軟鏈,方便使用艺骂。
最后用 PM2 啟動 easy-mock诸老,沒有 PM2 的話先全部安裝,然后進到 easy-mock 的項目下面運行命令:
NODE_ENV=production pm2 start app.js
啟動成功后钳恕,會出現(xiàn) PM2 的進程列表
打開 服務(wù)器ip+port别伏,查看 easy-mock 是否啟動,啟動成功后苞尝,在命令行中輸入 netstat -ntlp
畸肆,查看所有正在使用的端口:
可以看到 MongoDB、redis宙址、easy-mock 三個進程都正常啟動轴脐,部署階段也大功告成了!
總的來說抡砂,過程不算很困難大咱,都是安裝和使用。對于前端慢慢往服務(wù)端深入的過程還是有很大幫助的注益。