成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

node+koa實(shí)現(xiàn)數(shù)據(jù)mock

Barry_Ng / 1421人閱讀

摘要:基于實(shí)現(xiàn)的數(shù)據(jù)接口,需要以上版本,低于此版本請(qǐng)先升級(jí)目錄結(jié)構(gòu)獲取列表數(shù)據(jù)頁(yè)數(shù)每頁(yè)數(shù)據(jù)條數(shù)返回狀態(tài)碼返回成功有錯(cuò)誤是否有更多數(shù)據(jù)構(gòu)造返回對(duì)象如果超過(guò)最大頁(yè)面數(shù)獲取詳情數(shù)據(jù)商品提交評(píng)論用戶商品評(píng)論內(nèi)容缺少參數(shù)評(píng)論成功實(shí)際項(xiàng)目中,調(diào)用接口會(huì)遇到

基于node+koa實(shí)現(xiàn)的mock數(shù)據(jù)接口,Koa需要v7.6.0以上node版本,低于此版本請(qǐng)先升級(jí)node
目錄結(jié)構(gòu)

// server.js
const Koa = require("koa");
const Router = require("koa-router");
const qs = require("qs");
const assert = require("assert");

const app = new Koa();
const router = new Router();

/**
 * 獲取列表數(shù)據(jù)
 * @param {request} page 頁(yè)數(shù)
 * @param {request} limit 每頁(yè)數(shù)據(jù)條數(shù)
 * @param {response} errno 返回狀態(tài)碼 0 ==> 返回成功  1 ==> 有錯(cuò)誤
 * @param {response} hasMore 是否有更多數(shù)據(jù)
 */
let listData = require("./mock/list/list.js");

router.get("/api/getlist/:page/:limit", function (ctx, next) {
    
    const page = ctx.params.page;
    const limit = ctx.params.limit;
    const maxPage = listData.length / limit;
    
    // 構(gòu)造返回對(duì)象
    let res = {
        errno: 0,
        data: {
            hasMore: true,
            data: []
        }
    };

    // 如果超過(guò)最大頁(yè)面數(shù)
    if ((page*1 + 1) >= maxPage) {
        res.data.hasMore = false;
    }
    res.data.data = listData.slice(page*limit, page*limit + limit);
      ctx.body = res;
});

/**
 * 獲取詳情數(shù)據(jù)
 * @param {request} id 商品id
 */
const detailData = require("./mock/detail/detail.js");

router.get("/api/getdetail/:id", function (ctx, next) {

    const id = ctx.params.id
    let res = {
        errno: 0,
        data: {
            data: []
        }
    }
    res.data.data = detailData;
    // todo...
    ctx.body = res;
});

/**
 * 提交評(píng)論
 * @param {request} id  用戶id
 * @param {request} uid 商品id
 * @param {request} msg 評(píng)論內(nèi)容
 */
router.post("/api/comment", function (ctx, next) {
    
    const params = qs.parse(ctx.req._parsedUrl.query);
    const id = params.id;
    const uid = params.uid;
    const msg = params.msg;
    if (id === undefined || uid === undefined || msg === undefined) {
        ctx.body = {
            errno: 1,
            msg: "缺少參數(shù)"
        }
    } else {
        // todo...
        ctx.body = {
            errno: 0,
            msg: "評(píng)論成功"
        }
    }
});

app
  .use(router.routes())
  .use(router.allowedMethods());
app.listen(3000);
console.log("server is running at http://localhost:3000/");
實(shí)際項(xiàng)目中,調(diào)用接口會(huì)遇到跨域的問(wèn)題,解決的方式有多種,這里介紹如何在webpack中配置
module.exports = {
    ...

    devServer: {
        proxy: {
          // 將 `/api` 開頭的 http 請(qǐng)求,都代理到 `localhost:3000` 上,由 koa 提供 mock 數(shù)據(jù)
          "/api": {
            target: "http://localhost:3000",
            secure: false
          }
        }
        ...
    }
}
項(xiàng)目地址:

https://github.com/daijingfeng/mock-server
喜歡的朋友就賞個(gè)star吧

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91984.html

相關(guān)文章

  • 從零開始做Vue前端架構(gòu)(4)

    摘要:前言上一篇我們遇到少年,是不是忘了的警告,這一篇我們就來(lái)解決這個(gè)問(wèn)題??偨Y(jié)通過(guò)實(shí)現(xiàn)前后端分離,并且使用來(lái)更方便的模擬數(shù)據(jù)。下一篇,我們創(chuàng)建發(fā)布環(huán)境下的配置文件,并且看看怎么優(yōu)化產(chǎn)出的代碼的從零開始做前端架構(gòu)項(xiàng)目完整代碼前端架構(gòu)子咻 前言 上一篇我們遇到少年,是不是忘了npm run mock?的警告,這一篇我們就來(lái)解決這個(gè)問(wèn)題。 開發(fā) 一、安裝包 安裝koa和一系列的包(我們用的是ko...

    xuweijian 評(píng)論0 收藏0
  • 造輪子:用Node寫一個(gè)API Mock

    摘要:使用寫一個(gè)服務(wù)實(shí)現(xiàn)思路讀取文件夾遍歷文件嘗試導(dǎo)入文件內(nèi)容將文件內(nèi)容拼接成一個(gè)對(duì)象將請(qǐng)求類型空格請(qǐng)求地址作為當(dāng)收到的請(qǐng)求能在對(duì)象中找到就返回結(jié)果找不到結(jié)果返回獲取文件內(nèi)容同步讀取文件夾對(duì)象匯總遍歷文件只讀取文件容錯(cuò),可能文件內(nèi)容有問(wèn)題只合并對(duì) 使用Node寫一個(gè)Mock服務(wù) 實(shí)現(xiàn)思路: 讀取mock文件夾 遍歷.js文件 嘗試導(dǎo)入文件內(nèi)容 將文件內(nèi)容拼接成一個(gè)對(duì)象 將請(qǐng)求類型 + 空格...

    DevTTL 評(píng)論0 收藏0
  • 前端開發(fā)如何做好本地接口模擬

    摘要:前端開發(fā)如何做好本地接口模擬之前有寫過(guò)一篇本地化接口模擬前后端并行開發(fā),講到過(guò)本地接口模擬,但不太細(xì)致。有哪些途徑本地接口模擬一般分為工具層面和代碼層面。因?yàn)楸镜亟涌谀M功能主要是針對(duì)的返回值為格式的異步請(qǐng)求,所以這種方式主要用文件。 前端開發(fā)如何做好本地接口模擬 之前有寫過(guò)一篇 本地化接口模擬、前后端并行開發(fā),講到過(guò)本地接口模擬,但不太細(xì)致。這次細(xì)細(xì)的說(shuō)說(shuō)本地接口模擬。 1. 有什么...

    ACb0y 評(píng)論0 收藏0
  • node服務(wù)端渲染(完整demo)

    摘要:簡(jiǎn)介搭建多頁(yè)面服務(wù)端渲染技術(shù)點(diǎn)搭建服務(wù)創(chuàng)建頁(yè)面路由模板引擎組合打包多頁(yè)面端異步請(qǐng)求服務(wù)端日志打印項(xiàng)目源碼運(yùn)行一現(xiàn)代服務(wù)端渲染的由來(lái)服務(wù)端渲染概念是指,瀏覽器向服務(wù)器發(fā)出請(qǐng)求頁(yè)面,服務(wù)端將準(zhǔn)備好的模板和數(shù)據(jù)組裝成完整的返回給瀏覽器展示前端后 簡(jiǎn)介 nodejs搭建多頁(yè)面服務(wù)端渲染 技術(shù)點(diǎn) koa 搭建服務(wù) koa-router 創(chuàng)建頁(yè)面路由 nunjucks 模板引擎組合html ...

    cheukyin 評(píng)論0 收藏0
  • 適合初學(xué)者的koa2+mongodb初體驗(yàn)

    摘要:前言筆者的前端開發(fā)已經(jīng)有些時(shí)日了,對(duì)于一直保留著最初的恐懼,倘若一座不可跨越的高山,思前想后終于邁出最后一步,踏入了開拓自己視野的新視界,希望在看這篇文章的你可以一起跟我動(dòng)手嘗試。面向的下一代框架。由團(tuán)隊(duì)打造,特點(diǎn)優(yōu)雅簡(jiǎn)潔靈活體積小。 showImg(https://segmentfault.com/img/bVbuorM?w=1514&h=568); 前言 ?????筆者的前端開發(fā)已...

    Jacendfeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<