koa 中介軟體

2022-07-10 06:00:14 字數 2226 閱讀 4548

中介軟體就是匹配路由之前或者匹配路由完成做的一系列的操作,我們就可以把它叫做中介軟體。

在express ,  中介軟體(middleware)是乙個函式,它可以訪問請求物件(request object (req)),  響應物件(response object (res)), 和web 應用中處理請求-響應迴圈流程中的中介軟體,一般被命名為next 的變數。在koa 中中介軟體和express 有點類似。

應用級中介軟體:

const koa = require('koa')

const router = require('koa-router')()

//應用級中介軟體,匹配任何路由,如果get,post**函式中沒有next引數,這個路由被匹配到了就不會繼續向下匹配

console.log('應用級中介軟體')

})router.get('/', async (ctx) => )

router.get('/register',async (ctx)=>)

兩個路由都是 只列印出 「應用級中介軟體」,頁面上是 not found

const koa = require('koa')

const router = require('koa-router')()

//使用應用級中介軟體在匹配路由之前列印當前時間

//如果需要往下匹配的話,那麼需要寫next()

console.log(new date())

await next() //當前路由匹配完成以後繼續向下匹配

})router.get('/', async (ctx) => )

router.get('/register',async (ctx)=>)

① 匹配 首頁 (註冊頁) 路由時,

列印順序:

2020-06-19t14:11:10.891z

首頁然後頁面渲染 「 首頁 」

② 沒有匹配到 login 路由時:

只列印出 當前時間

頁面上是 not found

路由級中介軟體:

const koa = require('koa')

const router = require('koa-router')()

router.get('/',async (ctx)=>)

router.get('/', async (ctx) => )

router.get('/register', async (ctx, next) => )

router.get('/register',async (ctx,next)=>)

匹配到 / 時,列印出 「首頁1」,頁面上渲染 「首頁1」

匹配到 /register 時,先後列印出 「註冊頁1」,「註冊頁2」 , 頁面上渲染 「註冊頁2」

錯誤處理中介軟體:

const koa = require('koa')

const router = require('koa-router')()

console.log("應用級中介軟體")

next()

if(ctx.status == 404)

else

})router.get('/',async (ctx)=>)

router.get('/login',async (ctx)=>)

匹配 「 / 」 時,先後列印出 「 應用級中介軟體 」 、 「首頁」 、 「 / 」 ,頁面上渲染 「 首頁」

沒有匹配到 "/regiser " ,只列印出 「應用級中介軟體 」  , 頁面上渲染 「404頁面」

中介軟體的執行流程:

const koa = require('koa')

const router = require('koa-router')()

console.log(1);

await next();

console.log(2);

}) console.log(3);

await next();

console.log(4);

})router.get('/', async (ctx) => )

router.get('/login', async (ctx) => )

匹配 ' / ' 時,

沒有匹配到 /register 時,

1,3,4,2

koa 中介軟體

什麼是中介軟體 中介軟體是匹配路由之前或匹配路由完成做的一系列操作 中介軟體是乙個函式,它可以訪問請求物件和響應物件,和web應用中處理請求 響應迴圈流程 變數next,呼叫它,將控制權交給下乙個中介軟體函式 中介軟體的功能 koa中的幾種中介軟體 應用級中介軟體 路由級中介軟體 錯誤處理中介軟體 ...

koa 中介軟體

什麼是 koa 的中介軟體 通俗的講 中介軟體就是匹配路由之前或者匹配路由完成做的一系列的操作,我們就可以 把它叫做中介軟體。在express中介軟體 middleware 是乙個函式,它可以訪問請求物件 requestobject req 響應物件 responseobject res 和 web...

Koa中介軟體

koa 應用程式是乙個包含一組中介軟體函式的物件,它是按照類似堆疊的方式組織和執行的。當乙個中介軟體呼叫 next 則該函式暫停並將控制傳遞給定義的下乙個中介軟體。當在下游沒有更多的中介軟體執行後,堆疊將展開並且每個中介軟體恢復執行其上游行為。以上兩句話,是我在官方文件中找到其對 koa 中介軟體的...