egg学习笔记(3)--中间件

简介

中间件:匹配路由前,匹配路由完成做的一系列操作

目录结构

egg学习笔记(3)--中间件_第1张图片

打印时间

//middleware/printdate.js

module.exports = (options,app) => {
    
    return async function printdate(ctx,next){
        console.log(options);   //打印参数 
        console.log(new Date()); //打印时间
        await next()
    }
}

//config/config.default.js

 config.middleware = ['printdate'];
  config.printdate = {
    aaa:"aaa"
  }

刷新页面
egg学习笔记(3)--中间件_第2张图片

禁止指定ip访问

//middleware/forbidip.js

module.exports = (options,app) => {
    return async function forbidip(ctx,next){
        var forbidips = options.forbidips;
        var clientIp = ctx.request.ip;
        var hasIp = forbidips.some(val => {
            if(val == clientIp){
                return true;
            }
        })
        if(hasIp){
            ctx.status = 403;
            ctx.body = '你的ip已经被屏蔽';
        }else{
            await next()
        }
    }
}

//config/config.default.js

  config.middleware = ['printdate','forbidip'];
  config.printdate = {
    aaa:"aaa"
  }
  config.forbidip = {
    forbidips:[
      '127.0.0.1',
      '192.168.0.10'
    ]
  }

页面效果

egg学习笔记(3)--中间件_第3张图片

egg学习笔记(3)--中间件_第4张图片

你可能感兴趣的:(eggjs)