koa2中的ctx是什麼?

2022-05-01 22:21:11 字數 1014 閱讀 7724

為了試圖搞明白,用console.log將它輸出

const koa = require('koa');

koa();

console.log(ctx)

});列印的結果如下:

}, response:

},originalurl: '/',

req: '',

res: '',

socket: ''}

可見它主要包括request和response兩部分。

ctx是context的縮寫中文一般叫成上下文,這個在所有語言裡都有的名詞,可以理解為上(request)下(response)溝通的環境,所以koa中把他們兩都封裝進了ctx物件,koa官方文件裡的解釋是為了呼叫方便,ctx.req=ctx.request,ctx.res=ctx.response,類似linux系統中的軟連線?最終執行還是request和response物件

body是http協議中的響應體,header是指響應頭

ctx.body = ctx.res.body = ctx.response.body

koa 提供乙個 context 物件,表示一次對話的上下文(包括 http 請求和 http 回覆)。通過加工這個物件,就可以控制返回給使用者的內容。

context.response.body屬性就是傳送給使用者的內容。

const koa = require('koa');

koa();

const main = ctx =>;

你可能已經猜到了,ctx.response代表 http response。同樣地,ctx.request代表 http request。

執行這個 demo,訪問 ,現在就可以看到"hello world"了。

1. segmentfault: 

2. ruanyifeng部落格:

3. github官方解釋:

理解Koa2中的async await

koa是一款非常著名的node服務端框架,有1.x版本和2.x版本。前者使用了generator來進行非同步操作,後者則用了最新的async await方案 一開始使用這種寫法的時候,我遇到乙個問題,如下 const koa require koa const dosomething time ti...

koa2 中介軟體裡面的next到底是什麼

const koa require koa koa const start date.now await next const ms date.now start console.log 1.首先看 use 就是push乙個函式到 this.middleware 2.再看listen,方法裡面 ht...

koa2中介軟體原理

koa2中介軟體的執行就像洋蔥圈一樣,從外面到最裡面,再從最裡面到最外面。const koa require koa logger console.log 第一層洋蔥圈開始 await next const rt ctx.response.get x response time console.lo...