Middleware 就是中间件,使用这种东西我们可以加工处理请求还有响应 .. 在 egg 应用里添加一个中间件可以放在 app .. middleware 目录的下面,新建一个 demo.js ..
use strict .. 再导出一个方法 .. module.exports .. 接收一个 options 参数,这个参数里面的东西就是在这个中间件里包含的一些配置选项 ..
里面 return 一个 async function ... 名字可以是 demo .. 方法接受两个参数,一个是 ctx 表示 context ,还有一个是 next ...
这个中间件暂时不做什么 .. 只让它在控制台上输出中间件的 options ... 再输出一个 ctx ...
下面执行一下 next() 方法 ... await next();
这样我们就定义好了一个中间件,暂时它只是在控制台上输出了中间件的配置选项,还有 context ...
使用中间件
中间件可以用在全局范围,也可以用在某些指定的路由上 .. 用在全局范围可以这样 .. 打开 config 下面的 config.default.js .. 在 config.middleware 这个数组里面,添加想要用在全局范围的中间件 ... 就是每次请求都会执行这些中间件 .. 里面添加一个 demo ..
给这个 demo 中间件添加的配置,可以这样 .. config.demo .. 它的值可以是一个对象 .. 里面是这个 demo 中间件需要的一些配置选项 .. 先随便添加一个,比如 demoOption ... 设置一下对应的值 ... demo middleware config ..
下面再去测试一下 ... 随便访问应用里面的某个地址 ...
再回到运行应用服务的命令行标签 ... 在上面会输出 demo 这个中间件里的一些配置选项 .... 还有就是 context 里面的东西 .. 现在它里面有 request ,response ... app 这些东西 ..
在中间件里面,你可以在 ctx 上面添加新的东西,也可以修改它里面的东西 ...