egg.js的官网是这么描述中间件的,所以在app文件下新建middleware文件夹,放置项目的中间件。
中间件定义格式:
module.exports = option => {
return async function aa(ctx, next) {
}
}
中间件编写完成后,需要手动挂载,手动挂载的地方是app文件夹下config文件下的config.default.js里的middleware:["中间件文件名称"]里添加,
这时候刷新界面可以在控制台看到打印出了中间件信息,说明中间件调用成功,但是界面显示404,这是因为调用中间件的时候就停留在中间件阶段而不忘下一步执行,若要执行,需要next();这里和vue里的导航守卫类似。
在中间件里加上这一句话: await next();界面正常。
可以在中间件里做一个类似权限控制功能;
option是一个形参,可以用来传递参数,传递的地方在config/config.default.js里