日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1. Context 對象

Koa 提供一個 Context 對象,表示一次對話的上下文(包括 HTTP 請求和 HTTP 回復(fù))。通過加工這個對象,就可以控制返回給用戶的內(nèi)容。

Context.response.body屬性就是發(fā)送給用戶的內(nèi)容

const Koa = require('koa');
const App = new Koa();
const main = ctx => {
 ctx.response.body = 'Hello World';
};
app.use(main);
app.listen(3000);
復(fù)制代碼

上面代碼中,main函數(shù)用來設(shè)置ctx.response.body。然后,使用app.use方法加載main函數(shù)。

你可能已經(jīng)猜到了,ctx.response代表 HTTP Response。同樣地,ctx.request代表 HTTP Request。

2. 路由

原生路由用起來不太方便,我們可以使用封裝好的koa-route模塊

const route = require('koa-route');
const about = ctx => {
 ctx.response.type = 'html';
 ctx.response.body = '<a href="/">Index Page</a>';
};
const main = ctx => {
 ctx.response.body = 'Hello World';
};
app.use(route.get('/', main));
app.use(route.get('/about', about));
復(fù)制代碼

3. 靜態(tài)資源

如果網(wǎng)站提供靜態(tài)資源(圖片、字體、樣式表、腳本......),為它們一個個寫路由就很麻煩,也沒必要。koa-static模塊封裝了這部分的請求。

const path = require('path');
const serve = require('koa-static');
const main = serve(path.join(__dirname));
app.use(main);
復(fù)制代碼

4. 中間件

const logger = (ctx, next) => {
	 console.log(`${Date.now()} ${ctx.request.method} ${ctx.request.url}`);
 next();
}
app.use(logger);
復(fù)制代碼

像上面代碼中的logger函數(shù)就叫做"中間件"(middleware),因為它處在 HTTP Request 和 HTTP Response 中間,用來實現(xiàn)某種中間功能。app.use()用來加載中間件。

基本上,Koa 所有的功能都是通過中間件實現(xiàn)的,前面例子里面的main也是中間件。每個中間件默認(rèn)接受兩個參數(shù),第一個參數(shù)是 Context 對象,第二個參數(shù)是next函數(shù)。只要調(diào)用next函數(shù),就可以把執(zhí)行權(quán)轉(zhuǎn)交給下一個中間件

5. express和koa中間件對比

express中間件是一個接一個的順序執(zhí)行 koa中間件是按照圓圈循環(huán)進(jìn)行,即從外層到內(nèi)層,又從內(nèi)層回到外層來結(jié)束。

  • koa2的中間件是通過 async await 實現(xiàn)的,中間件執(zhí)行順序是“洋蔥圈”模型。 中間件之間通過next函數(shù)聯(lián)系,當(dāng)一個中間件調(diào)用 next() 后,會將控制權(quán)交給下一個中間件, 直到下一個中間件不再執(zhí)行 next() 后, 將會沿路折返,將控制權(quán)依次交換給前一個中間件。
  • 與 koa2 中間件不同的是,express中間件一個接一個的順序執(zhí)行, 通常會將 response 響應(yīng)寫在最后一個中間件中 主要特點: app.use 用來注冊中間件 遇到 http 請求,根據(jù) path 和 method 判斷觸發(fā)哪些中間件 實現(xiàn) next 機(jī)制,即上一個中間件會通過 next 觸發(fā)下一個中間件

分享到:
標(biāo)簽:框架 KOA
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定