写一个简单的egg.js中间件

发布于2024-02-21 13:49 阅读 218

在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);


评论

全部评论

{{item.username}}
{{item.comment_content}}
回复

{{reply.username}} 回复:{{reply.replyname}}

{{reply.content}}

{{reply.isshow ? '取消回复' : '回复'}}

作者

程序员李蛋

一个早早地学会让自己的灵魂充分扩展的人,以后才能将整个世界收入自己的灵魂当中。