🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
egg.js中,约定一个中间件是一个放置在`app/middleware`目录下的单独文件,它需要导出module.exports,导出为一个普通的函数,接受两个参数: `option`:中间件的配置,框架会将app.config[${middlewareName}]传递过来。 `app`:当前应用Application的实例子。 ## 定义一个访问任何地址,都先打印日期的中间件 ### 1.创建中间件 ![](https://box.kancloud.cn/ee942f20102dc5e0b8da5c9eac23c573_966x618.png) ~~~ //middlewate/printdate.js module.exports = (options,app)=>{ //返回一个异步的方法 return async function printDate(ctx,next){ console.log(new Date); await next() } } ~~~ ### 2.配置中间件 >[warning]Tip:文件名要和middleware的文件名一样 ~~~ config/config.default.js中配置 module.exports = appInfo => { // 增加配置中间件 config.middleware = ['printdate']; } ~~~ ![](https://box.kancloud.cn/6594b0a5f8ab1b629e94cae7427275e1_1055x695.png) ### 3.给中间件传递参数 ~~~ config/config.default.js中配置 // 增加配置中间件 config.middleware = ['printdate']; config.printdate={ params:"给中间件传递参数" } ~~~ ~~~ //middlewate/printdate.js //在中间件中通过options接受 module.exports = (options,app)=>{ //返回一个异步的方法 return async function printDate(ctx,next){ console.log(new Date); console.log(options) //{ params: '给中间件传递参数' } await next() } } ~~~