使用 koa2 快速搭建 mock server

2021-09-27 09:10:08 字數 2777 閱讀 7986

在前後端分離式開發中,經常遇到需要自己 mock 資料測試介面的情況,下面是一種使用 koa2 快速搭建 mock 服務的實現方式。

首先全域性安裝 koa-generator

npm

install -g koa-generator

在合適位置上初始化目錄結構

koa2 mock-server
生成的目錄結構如下:

執行服務

npm run dev
dev 指令使用nodemon啟動服務,nodemon是 node 的自動重啟工具,避免了修改**後需要手動重啟的麻煩。

接下來訪問localhost:3000就能看到已經啟動好的服務了。

koa-generator生成的路由中預設提供了index.jsusers.js兩個路由檔案,分別對應了:

const router =

require

('koa-router')(

)// localhost:3000/

router.

get(

'/',

async

(ctx, next)

=>)}

)// localhost:3000/string

router.

get(

'/string'

,async

(ctx, next)

=>

)// localhost:3000/json

router.

get(

'/json'

,async

(ctx, next)

=>})

module.exports = router

以及

const router =

require

('koa-router')(

)// 該檔案下的路由會以 users 作為字首

router.

prefix

('/users'

)// localhost:3000/users/

router.

get(

'/',

function

(ctx, next)

)// localhost:3000/users/bar

router.

get(

'/bar'

,function

(ctx, next)

)module.exports = router

ctx.body中則提供了返回的結果

在平時的 mock 中,經常會遇到跨域問題,通過設定access-control-*可以很好避免跨域問題,這裡以筆者曾經遇到過的情景為例。

// 定義 handler middleware

const handler =

async

(ctx, next)

=>

trycatch(e

)}}然後在處理路由前加上這層handler middleware就可以了

use(handler)

;// routes

use(index.

routes()

, index.

allowmethods()

);use(users.

routes()

, users.

allowmethods()

);在koa-router中已經封裝了相應請求,使用方法如下

// users.js

const router =

require

('koa-router');

router.

prefix

('/users');

// get

router.

get(

'/bar'

,function

(ctx, next));

// post

router.

post

('/bar'

,function

(ctx, next));

// put

router.

put(

'/bar'

,function

(ctx, next));

// delete

router.

delete

('/bar'

,function

(ctx, next)

);

使用不同的方式訪問http://localhost:3000/users/bar就可以得到相應的結果(注:3000 埠是預設啟動的埠,你可以在你的專案/bin/www下更改port

使用koa generator生成koa2專案

1 新建專案目錄,準備在 建立專案和寫 就在 建立即可。2 開啟命令列視窗。安裝koa generator,安裝命令為 npm install g koa generator 全域性安裝 3 使用koa generator生成koa2專案,輸入命令 koa2 koa demo koa demo為 專...

koa2使用ejs模板引擎

在koa中使用ejs並不需要像在node中一樣安裝了還要引用,只需要npm了就行,同時還需要安裝koa views模組。如 const views require koa views 對ejs模板進行配置 方法一 extension ejs 指定我們使用的模板為ejs 通過方法一配置ejs模板的時候...

koa2 使用passport許可權認證

主要技術棧 nuxt.js koa mongodb redis 本地使用者登入,第三方登入都需要許可權認證,許可權認證的思路也極其簡單,不外乎就是登入,登出,路由守護三部分。官網 1 安裝 koa2中使用的是koa passport這個包。本地驗證用的是passport local這個策略 npm ...