koa.js

koa的context

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通過封裝的請求對象
複製代碼

錯誤處理

  1. 所以發生錯誤時能夠app.emit('error', err, ctx)
app.on('error', (err, ctx) => {
  log.error('server error', err, ctx)
});
複製代碼
  1. ctx.throw([status], [msg], [properties])
ctx.throw(400, 'name required')
===
const err = new Error('name required');
err.status = 400;
err.expose = true;
throw err;
複製代碼

request

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')
複製代碼

response

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
複製代碼
相關文章
相關標籤/搜索