通過express與mokejs搭建屬于自己的rap2服務(wù)器

  1. 運行$ npx express-generator api-server創(chuàng)建一個express項目

  2. $ cd api-server進入項目目錄

  3. $ npm install安裝項目所需要的依賴

  4. $ npm install nodemon -D安裝nodemon

  5. $ npm install mockjs -S安裝mockjs

  6. 打開項目目錄下的package.json, 更改scripts:

 // 引入express
const express = require('express');
// 只使用router
const router = express.Router();
// 引入Mock對象
const Mock = require('mockjs')


// 定義生成數(shù)據(jù)列表的方法
const generateData = () => {
// 使用Mock.mock方法來生成mock數(shù)據(jù)
return Mock.mock({
"code": 200,
"data|12": [
{
"id": "@id",
"title": "@ctitle(15, 25)",
"author": "@cname",
"volume": "@int(100, 300)",
"createAt": "@int(10000000000000, 1554363040517)"
}
]
})
}

// 定義另外一個方法响疚,用于生成單個數(shù)據(jù)
const generateDataById = (id) => {
return Mock.mock({
"code": 200,
data: {
id,
"title": "@ctitle(15, 25)",
"author": "@cname",
"volume": "@int(100, 300)",
"createAt": "@int(10000000000000, 1554363040517)"
}
})
}
/* 獲取用戶列表 */
router.get('/', function(req, res, next) {
res.json(generateData())
});
/* 獲取單個用戶,根據(jù)用戶的id, 這里有一個express通配符路由(動態(tài)路由) */
router.get('/:id', function(req, res, next) {
const {
id
} = req.params
res.json(generateDataById(id))
});

module.exports = router;
  1. 根據(jù)需要配置路由

  2. 比如背犯,有一個叫users的路由掛載在/api/v1/users下柳琢,就可以這么來寫這個mock數(shù)據(jù)

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="js" cid="n20" mdtype="fences"
    style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit;">// 引入express
        const express = require('express');
        // 只使用router
        const router = express.Router();
        // 引入Mock對象
        const Mock = require('mockjs')
        ?
        ?
        // 定義生成數(shù)據(jù)列表的方法
        const generateData = () => {
         // 使用Mock.mock方法來生成mock數(shù)據(jù)
         return Mock.mock({
         "code": 200,
         "data|12": [
         {
         "id": "@id",
         "title": "@ctitle(15, 25)",
         "author": "@cname",
         "volume": "@int(100, 300)",
         "createAt": "@int(10000000000000, 1554363040517)"
         }
         ]
         })
        }
        ?
        // 定義另外一個方法绍妨,用于生成單個數(shù)據(jù)
        const generateDataById = (id) => {
         return Mock.mock({
         "code": 200,
         data: {
         id,
         "title": "@ctitle(15, 25)",
         "author": "@cname",
         "volume": "@int(100, 300)",
         "createAt": "@int(10000000000000, 1554363040517)"
         }
         })
        }
        /* 獲取用戶列表 */
        router.get('/', function(req, res, next) {
         res.json(generateData())
        });
        /* 獲取單個用戶,根據(jù)用戶的id, 這里有一個express通配符路由(動態(tài)路由) */
        router.get('/:id', function(req, res, next) {
         const  {
         id
         } = req.params
         res.json(generateDataById(id))
        });
        ?
        module.exports = router;
        ?</pre>

這樣我們就可以使用 http://localhost:port/users獲取用戶列表, 使用 http://localhost:port/users/任意的id參數(shù)獲取用戶信息

*更改于 2019-04-18 *

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柬脸,一起剝皮案震驚了整個濱河市他去,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌倒堕,老刑警劉巖灾测,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異垦巴,居然都是意外死亡行施,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門魂那,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾号,“玉大人,你說我怎么就攤上這事涯雅∠式幔” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵活逆,是天一觀的道長精刷。 經(jīng)常有香客問我,道長蔗候,這世上最難降的妖魔是什么怒允? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮锈遥,結(jié)果婚禮上纫事,老公的妹妹穿的比我還像新娘。我一直安慰自己所灸,他們只是感情好丽惶,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爬立,像睡著了一般钾唬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天抡秆,我揣著相機與錄音奕巍,去河邊找鬼。 笑死儒士,一個胖子當(dāng)著我的面吹牛伍绳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乍桂,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼效床!你這毒婦竟也來了睹酌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剩檀,失蹤者是張志新(化名)和其女友劉穎憋沿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沪猴,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡辐啄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了运嗜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壶辜。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖担租,靈堂內(nèi)的尸體忽然破棺而出砸民,到底是詐尸還是另有隱情,我是刑警寧澤奋救,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布岭参,位于F島的核電站,受9級特大地震影響尝艘,放射性物質(zhì)發(fā)生泄漏演侯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一背亥、第九天 我趴在偏房一處隱蔽的房頂上張望秒际。 院中可真熱鬧,春花似錦狡汉、人聲如沸程癌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嵌莉。三九已至,卻和暖如春捻脖,著一層夾襖步出監(jiān)牢的瞬間锐峭,已是汗流浹背中鼠。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沿癞,地道東北人援雇。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像椎扬,于是被迫代替她去往敵國和親惫搏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355