1. 程式人生 > >egg學習筆記(3)--中介軟體

egg學習筆記(3)--中介軟體

簡介

中介軟體:匹配路由前,匹配路由完成做的一系列操作

目錄結構

clipboard.png

列印時間

//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"
  }

重新整理頁面clipboard.png

禁止指定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'
    ]
  }

頁面效果

clipboard.png

clipboard.png