1、koa的基本使用
koa中的ctx是內容的縮寫,裡面包含了request、response等等內容
const koa =
require
('koa');
//引入
newkoa()
;//例項化
//配置中介軟體
use(
async
(ctx)
=>
)listen
(3000);
//監聽
2、koa路由
//koa路由 路由是乙個由url(或者叫路徑)和乙個特定方法(get post等)
//組成的,涉及到如何響應客戶端對摸個網路站點的訪問
//具體解釋
//根據不同1的url位址,載入不同的頁面實現不同的功能
//koa中需要安裝對應的koa-router模組來實現路由
具體示例
const koa =
require
('koa');
//引入
const router =
require
('koa-router'
)new
koa();
//例項化
const router =
newrouter()
//var router = require('koa-router')()//也可以通過這種方式引入和例項化路由
//配置路由
router.
get(
'/',
async
(ctx)
=>).
get(
'/news'
,async
(ctx)
=>).
get(
'/getdio'
,async
(ctx)
=>
)//使用路由
.use(router.
routes()
)//啟動路由 路由生效
.use
(router.
allowedmethods()
);//可選項,建議配置
/*allowedmethods 用在了路由匹配.routes()之後,
此時根據ctx.status設定響應頭*/
listen
(3000);
//監聽
3、動態路由
使用params獲取動態路由的傳值
獲取動態路由的傳值 當動態路由傳遞多個引數時,
ctx.params返回的是乙個物件
.
get(
'/jojo/:aid'
,async
(ctx)
=>).
get(
'/jojo/:aid/:cid'
,async
(ctx)
=>
)
4、中介軟體
koa中的中介軟體和express不同,koa中介軟體優於路由執行,等中介軟體執行之後再匹配路由
中介軟體的功能一般包括
1、執行任何**
2、修改請求和響應物件
3、終結請求-響應迴圈
4、呼叫堆疊中的下乙個中介軟體
ps:如果我的get post 函式中沒有next引數,那麼久匹配上第乙個路由就不會往下匹配了,如果想要往下匹配,
需要next()
下面看個例子
const koa =
require
('koa');
const router =
require
('koa-router');
const koa =
newkoa()
;const router =
newrouter()
;//1、應用級中介軟體(處理事務)
koa //匹配路由之前列印日期
.use
(async
(ctx, next)
=>
)//錯誤資訊中介軟體(報錯反饋)
.use
(async
(ctx, next)
=>
else})
//2、路由級中介軟體(在路由中相關操作)
//匹配到new路由以後繼續向下匹配路由
router
.get(
'/news'
,async
(ctx, next)
=>).
get(
'/news'
,async
(ctx, next)
=>
)router
.get(
'/',
async
(ctx)
=>
)koa
.use(router.
routes()
).use(router.
allowedmethods()
).listen
(3000);
console.
log(
'127.0.0.1:3000'
);
正確的執行順序是,第乙個中介軟體,第二個中介軟體的next()上部分,路由匹配,第二個中介軟體的next()下部分
輸出為
2020-05
-12t14:35:
48.793z
這是乙個返回日期中介軟體
這是乙個錯誤處理中介軟體
路由已執行
/
koa 03 路由級中介軟體
koa 路由 get 傳值 在 koa2 中 get 傳值通過request接收,但是接收的方法有兩種 query 和 querystring query 返回的是格式化好的引數物件 querystring 返回的是請求字串 引入模組 const koa require koa const rout...
2 Koa中介軟體與洋蔥模型
1.async await 為了更好的理解aysnc await,我們先請求兩個介面 1.請求github中的使用者介面 請求github使用者介面 fetch then res res.json then json console.log json 2.請求github中的使用者介面後,請求特定使...
koa 中,中介軟體非同步與同步的相關問題
同步中介軟體很容易理解,如以下 1 const router require koa router 2 koa new router 34 fs require fs 5 6 中介軟體執行順序 與非同步中介軟體 7 const one ctx,next 1213 const two ctx,next...