eggJs 中间件

中间件可以做面向切面编程

一、定义中间件

在egg中定义中间件,app/middleware目录下,每一个js就是一个中间件

 //1、在js中,暴露一个方法
module.exports = (options, app) => {
    //2、返回一个异步的函数
    return async function login(ctx, next) {
    console.log('hello middleware');
    await next();
    }
}
二、配置中间件

在config/config.default.js

//配置中间件,注意login需要和app/middleware下的login.js对应
  config.middleware = [
    'login'
  ];
 
//如果你的中间件需要传递参数,可以通过config.login来进行参数的传递,在中间件件可以通过options接收传递过来的参数
  config.login = {
    data: '给中间件传递的参数!'
  }

config.middleware表示这个中间件使用了 app 这个参数(全局参数)
config.login 表示这个参数使用了 options 这个参数 (配置参数)

三、使用中间件

在router.js

const auth = app.middleware.auth();
router.get('/user/add', auth, controller.user.add);

你可能感兴趣的:(eggJs 中间件)