KOA学习
Application对象: new Koa()
保存了应用全局状态以及其他对象,后面的Context、Request、Response对象都是该对象下的子对象。
context对象 // 精简为ctx
每一次请求都会包装一个context对象
该对象对node和request和response对象进行了封装
1、提供Koa的ctx.request和ctx.response
2、为开发人员提供ctx.state用于传递临时数据
3、ctx.cookies对象
4、ctx.throw 可携带http状态的错误
koa上传文件
https://juejin.im/post/5abc451ff265da23a2292dd4
koa框架
koa-static-cache 静态文件代理服务
koa-router 路由
koa-swig 模板引擎
koa-bodyparser body解析
koa-multer formData解析
koa-send 是一个静态文件服务的中间件
koa-body 中间件来处理文件
以下为入门层面,不深究。自行github查看用法。
koa-static-cache
// 静态资源代理
koa-router
定义根路由
嵌套路由(2种方法)
1、prefix前缀
2、父路由中间件声明
同名路由优先级 // 先定义优先
动态路由
router.get(’/user/:id, cb);
路由重定向
router.redirect(’/user’, ‘/login’, 301);
url定义
router.url();
Router.url();
koa-swig 与 co // 模板引擎
注: koa尽量使用async和await去处理请求。防止任务抢占。
koa-swig 与 co 相当于服务端渲染 // co可以不用安装,大多标准库的依赖都已安装。
koa-bodyparser
解析request的post请求数据(大多是json)。并存入ctx.body中