中间件
Koa的中间件很像Express的中间件,也是对HTTP请求进行处理的函数,但是必须是一个Generator函数。而且,Koa的中间件是一个级联式(Cascading)的结构,也就是说,属于是层层调用,第一个中间件调用第二个中间件,第二个调用第三个,以此类推。上游的中间件必须等到下游的中间件返回结果,才会继续执行,这点很像递归。
router
koa-route模块所建立的路由,支持类似与/:category/:id这样的参数路由,以及^/.*/?$正则匹配,可以通过this.params获取这些参数。

koa-static
如果网站提供静态资源(图片、字体、样式表、脚本......),为它们一个个写路由就很麻烦,也没必要。koa-static模块封装了这部分的请求
koa-compose
koa-compose模块可以将多个中间件合成为一个

session
在系统中,用户进行特定的操作的时候,可能需要进行登录检查或权限检查,如果没有登录或没有权限,就不能继续操作要进行登录检查,一般使用session,session和cookie都是web开发为了解决http是无状态协议的方案。
session是web开发中的一个概念,用来在服务器端存储同一个客户端在一系列跨请求操作的信息,通常是用户打开浏览器,登入系统session开始,用户关闭浏览器,session关闭
cookie是服务器端创建的,保存在客户端的文本格式的信息,在cookie的生存期每次访问服务器端的时候,自动带到服务器端,便于服务器端获取信息
ctx.cookies用来读写cookie

你会看到1 views。刷新一次页面,就变成了2 views。再刷新,每次都会计数增加1。
如果指定加密的话,必须用app.keys指定加密短语。
app.keys = ['secret1', 'secret2'];



文件上传
1.使用File表单元素
2.表单的method必须是post,enctype是multipart/form-data
3.安装multy中间件
4.在router中router.use(Multy())
5.通过ctx.request.body就可以正常读取请求体的数据


koa-compress
大多数情况下,我们的网站不仅仅就是存文字的还要包含一些其他类型的文件,比如:图片,mp3等。我们知道浏览器是支持加载gzip压缩过的网页的,所以以nginx为代表的静态文件服务器默认都会开启gzip压缩。那么我们Nodejs服务能不能对资源文件进行压缩呢?
答案是肯定的。Koa的作者写了一个中间件compress,支持对请求的response进行压缩,具体的使用如下:

浙公网安备 33010602011771号