實現(xiàn)一個非常便捷的本地mock

一覆积、什么是Mock

    現(xiàn)在web開發(fā)基本都是前后端完全分離的狀態(tài)听皿,所以為了業(yè)務更好的并行開發(fā),Mock在開發(fā)中就有很大的作用了宽档,和后端定義好借口后尉姨,就可以用 “模擬數(shù)據(jù)”開始開發(fā)了。

二吗冤、Mock的好處

   好處有很多又厉,一句話概括,有了Mock椎瘟,前后端人員只需要定義好接口文檔就可以開始并行工作覆致,互不影響。
mock.png

三肺蔚、實現(xiàn)Mock

   本地目錄結構
file.png

我們是如何在沒有真實接口的情況下進行開發(fā)的呢煌妈?

第一步: 本地構建一個web服務

本地安裝nodejs,配置package.json:

{
  "name": "mock",
  "scripts": {
    "dev": "node server.js"
  },
  "dependencies": {},
  "devDependencies": {
    "express": "^4.14.1"
  }
}

配置server.js:

// 這里使用了express, 執(zhí)行npm i express 或者 cnpm i express安裝依賴
var express = require('express');
var app = express();

// 指定html
app.get('/index.html', function(req, res) {
  res.sendFile(__dirname + req.path);
});

// 監(jiān)聽端口
app.listen('3737', function () {
  console.log('localhost:3737/index.html');
});

命令行執(zhí)行node serser.js 宣羊,瀏覽器打開localhost:3737/index.html璧诵,頁面就可以訪問了。

第二步: 配置Mock數(shù)據(jù)

修改server.js

var express = require('express');
var app = express();

// 指定html
app.get('/index.html', function(req, res) {
  res.sendFile(__dirname + req.path);
});

// 配置Mock數(shù)據(jù)
var fs = require('fs');
app.post('/home', function(req, res) {
  res.setHeader('Content-Type', 'application/json; charset=utf-8');
  fs.readFile('./mock/home.json', function(err, data) {
    if (err) throw err;

    res.json(JSON.parse(data));
  });
});

// 監(jiān)聽端口
app.listen('3737', function () {
  console.log('localhost:3737/index.html');
});

命令行重新執(zhí)行node serser.js 仇冯,我們發(fā)現(xiàn)頁面可以訪問'/home'這個接口了之宿;

第三步:優(yōu)化

一個項目中不可能只有一個接口,為了方便配置赞枕,在mock文件下加入了mock.js去做統(tǒng)一配置


/**
 * @note   setOnline 線上接口 配置
 * @param  name  本地接口名
 *         type  接口類型
 *         url   線上接口地址
 */
var fs = require('fs');
var setOnline = [
  {
    name: 'home',
    type: 'post',
    url: '/home'
  }
  // 第二個接口... 第三個接口
];

// 輸出配置項
exports.setOnline = setOnline;

// 遍歷輸出json數(shù)據(jù)
for (var i = 0, len = setOnline.length; i < len; i++) {
  (function() {
    var name = setOnline[i].name;

    exports[name] = function(req, res) {
      res.setHeader('Content-Type', 'application/json; charset=utf-8');
      fs.readFile('./mock/' + name + '.json', function(err, data) {
        if (err) throw err;

        res.json(JSON.parse(data));
      });
    };
  })(i);
}

修改server.js

var express = require('express');
var app = express();

app.get('/index.html', function(req, res) {
  res.sendFile(__dirname + req.path);
});

// Mock數(shù)據(jù)
var mock = require('./mock/mock.js');
var setOnline = mock.setOnline;

setOnline.forEach(function(m) {
  app[m.type](m.url, mock[m.name]);
});

app.listen('3737', function () {
  console.log('localhost:3737/index.html');
});

重啟web服務澈缺,大功告成

四、總結

實現(xiàn)Mock數(shù)據(jù)的方式還有很多種炕婶,比如mockjs姐赡、easymock等等。

本地Mock的特點不依賴mockjs柠掂、easymock等项滑,實現(xiàn)起來方便快捷。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末涯贞,一起剝皮案震驚了整個濱河市枪狂,隨后出現(xiàn)的幾起案子危喉,更是在濱河造成了極大的恐慌,老刑警劉巖州疾,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辜限,死亡現(xiàn)場離奇詭異,居然都是意外死亡严蓖,警方通過查閱死者的電腦和手機薄嫡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颗胡,“玉大人毫深,你說我怎么就攤上這事《疽蹋” “怎么了哑蔫?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弧呐。 經(jīng)常有香客問我闸迷,道長,這世上最難降的妖魔是什么泉懦? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任稿黍,我火速辦了婚禮,結果婚禮上崩哩,老公的妹妹穿的比我還像新娘。我一直安慰自己言沐,他們只是感情好邓嘹,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著险胰,像睡著了一般汹押。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上起便,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天棚贾,我揣著相機與錄音,去河邊找鬼榆综。 笑死妙痹,一個胖子當著我的面吹牛,可吹牛的內容都是我干的鼻疮。 我是一名探鬼主播怯伊,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼判沟!你這毒婦竟也來了耿芹?” 一聲冷哼從身側響起崭篡,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吧秕,沒想到半個月后琉闪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡砸彬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年颠毙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拿霉。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡吟秩,死狀恐怖,靈堂內的尸體忽然破棺而出绽淘,到底是詐尸還是另有隱情涵防,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布沪铭,位于F島的核電站壮池,受9級特大地震影響,放射性物質發(fā)生泄漏杀怠。R本人自食惡果不足惜椰憋,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赔退。 院中可真熱鬧橙依,春花似錦、人聲如沸硕旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漆枚。三九已至创译,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墙基,已是汗流浹背软族。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留残制,地道東北人立砸。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像痘拆,于是被迫代替她去往敵國和親仰禽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容