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

  1. 運(yùn)行$ npx express-generator api-server創(chuàng)建一個(gè)express項(xiàng)目

  2. $ cd api-server進(jìn)入項(xiàng)目目錄

  3. $ npm install安裝項(xiàng)目所需要的依賴(lài)

  4. $ npm install nodemon -D安裝nodemon

  5. $ npm install mockjs -S安裝mockjs

  6. 打開(kāi)項(xiàng)目目錄下的package.json, 更改scripts:

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


// 定義生成數(shù)據(jù)列表的方法
const generateData = () => {
// 使用Mock.mock方法來(lái)生成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)"
}
]
})
}

// 定義另外一個(gè)方法,用于生成單個(gè)數(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)"
}
})
}
/* 獲取用戶(hù)列表 */
router.get('/', function(req, res, next) {
res.json(generateData())
});
/* 獲取單個(gè)用戶(hù),根據(jù)用戶(hù)的id, 這里有一個(gè)express通配符路由(動(dòng)態(tài)路由) */
router.get('/:id', function(req, res, next) {
const {
id
} = req.params
res.json(generateDataById(id))
});

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

  2. 比如,有一個(gè)叫users的路由掛載在/api/v1/users下,就可以這么來(lái)寫(xiě)這個(gè)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對(duì)象
        const Mock = require('mockjs')
        ?
        ?
        // 定義生成數(shù)據(jù)列表的方法
        const generateData = () => {
         // 使用Mock.mock方法來(lái)生成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)"
         }
         ]
         })
        }
        ?
        // 定義另外一個(gè)方法,用于生成單個(gè)數(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)"
         }
         })
        }
        /* 獲取用戶(hù)列表 */
        router.get('/', function(req, res, next) {
         res.json(generateData())
        });
        /* 獲取單個(gè)用戶(hù),根據(jù)用戶(hù)的id, 這里有一個(gè)express通配符路由(動(dòng)態(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獲取用戶(hù)列表, 使用 http://localhost:port/users/任意的id參數(shù)獲取用戶(hù)信息

*更改于 2019-04-18 *

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容