const Koa = require('koa');
const app = new Koa();
app.use(ctx => {
ctx.body = 'Hello Koa in app-async.js';
console.log(ctx)
});
app.listen(3000);
ctx
是上下文的意思,但它究竟是什么呢?为了试图搞明白,用console.log将它输出,但是返回的内容里并没有ctx或content之类的东西。
{ request:
{ method: 'GET',
url: '/',
header:
{ host: 'localhost:3000',
connection: 'keep-alive',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, sdch, br',
'accept-language': 'zh-CN,zh;q=0.8' } },
response:
{ status: 200,
message: 'OK',
header:
{ 'content-type': 'text/plain; charset=utf-8',
'content-length': '25' } },
app: { subdomainOffset: 2, proxy: false, env: 'development' },
originalUrl: '/',
req: '<original node req>',
res: '<original node res>',
socket: '<original node socket>'
}
ctx是什么?
ctx.body又是什么?为什么是body?我试过写成ctx.head,会报错~
如果换成ctx.response.body这样写,输出结果貌似是一样的,它们两个是等价的吗?
谢谢~
天蓬老师2017-04-17 16:03:24
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
更詳細看github上的官方文件吧
https://github.com/koajs/koa/...
巴扎黑2017-04-17 16:03:24
https://github.com/koajs/koa/...
ctx.body 就是 ctx.response.body 的別名。
響應別名🎜🎜
ctx.body
ctx.body
ctx.body=
ctx.status
ctx.status=
ctx.message
ctx.message=
ctx.length=
ctx.length
ctx.type=
ctx.type
ctx.headerSent
ctx.redirect()
ctx.attachment()
ctx.set()
ctx.append()
ctx.remove()
ctx.lastModified=
ctx.etag=
ctx.body=
ctx.status
🎜🎜
🎜🎜ctx.status=
🎜🎜
🎜🎜ctx.message
🎜🎜
🎜🎜ctx.message=
🎜🎜
🎜🎜ctx.length=
🎜🎜
🎜🎜ctx.length
🎜🎜
🎜🎜ctx.type=
🎜🎜
🎜🎜ctx.type
🎜🎜
🎜🎜ctx.headerSent
🎜🎜
🎜🎜ctx.redirect()
🎜🎜
🎜🎜ctx.attachment()
🎜🎜
🎜🎜ctx.set()
🎜🎜
🎜🎜ctx.append()
🎜🎜
🎜🎜ctx.remove()
🎜🎜
🎜🎜ctx.lastModified=
🎜🎜
🎜🎜ctx.etag=
🎜🎜
🎜
🎜