市面上的大部分Web框架,都提供了很多Web相关的能力支持,例如。
Koa.js 作为一个web框架,总结出来只提供了两种能力
综上所述,用Koa.js想实现大部分Web功能的话,就需要整合相关功能的中间件。换句话说,Koa.js 说就是中间件的大容器,任何Web所需的能力通过中间件来实现。
Koa.js 中间件的分类,在我的理解,可以分成以下两种类型。
狭义中间件特点:
request
response
context
app.use()
加载举个栗子 例如 中间件koa-static
主要是靠拦截请求和响应,加载静态资源,中间件koa-bodyparser
主要是拦截请求后解析出HTTP
请求体重的POST数据,再挂载到ctx
上。
广义中间件特点
app.use()
加载举个例子 例如中间koa-router
是先注册路由后形成多个子中间件
,后面再封装成一个父中间件
提供给app.use()
加载,让所有子中间件加载到Koa.js
的请求洋葱模型
中。