ctx.request和ctx.response是koa本身封裝的,ctx.res, ctx,req是原生自帶的,例如 ctx.type 和 ctx.length 委託給 response 對象,ctx.path 和 ctx.method 委託給 request。express
ctx.request; // 這是 koa Request
ctx.response; // 這是 koa Response
ctrx.req //原始的http請求對象
ctx.res //原始的http響應對象
ctx.app // 應用程序實例引用
ctx.request // Koa2中context通過封裝的請求對象
複製代碼
app.on('error', (err, ctx) => {
log.error('server error', err, ctx)
});
複製代碼
ctx.throw(400, 'name required')
===
const err = new Error('name required');
err.status = 400;
err.expose = true;
throw err;
複製代碼
ctx.header
ctx.headers
ctx.method
ctx.method=
ctx.url
ctx.url=
ctx.originalUrl
ctx.origin
ctx.href
ctx.path
ctx.path=
ctx.query
ctx.query=
ctx.querystring
ctx.querystring=
ctx.host
ctx.hostname
ctx.fresh
ctx.stale
ctx.socket
ctx.protocol
ctx.secure
ctx.ip
ctx.ips
ctx.subdomains
ctx.is()
ctx.accepts()
ctx.acceptsEncodings()
ctx.acceptsCharsets()
ctx.acceptsLanguages()
ctx.get() // 拿請求頭ctx.get('accept-encoding')
複製代碼
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=
複製代碼
koa vs expressbash
// express koa
// express.static koa-static
// express koa
// bodyParser => koa-bodyPaser
// x koa-view
// cookie-parser x
// express-session koa-session
// multer koa-better-body
// x koa-router
複製代碼