6.2 中間件-middleware

中間件-middlewareexpress

1、概念:中間件其實就是一個函數。若是中間件經過了對請求的檢測和處理, 必需要執行 `next()` 函數。app

  如:  app.get('/request',function(req,res,next){},function(req,res){});函數

    在這個路由中間的這個function(req,res,next){}函數就是中間件。ui

  中間件就像學校看門大爺同樣,社會人要進去學校打球,行,提供證實,證實經過進去,不經過404.url

2、中間件分類:spa

  (1)全局中間件:針對全部路由有效,全部路由都要通過這個中間件處理code

app.use(function(req, res, next){})

 


  (2)路由中間件:只針對當前這個路由有效,對當前這個路由規則進行處理中間件

         app.get('/arc/1', function(req, res, next){
      / res.redirect('/login');
      next();
    }, function(req, res){
      res.send('ok');
    });     

 

3、全局中間件實例blog

let express=require('express');
let app=express();

let fs=require('fs');

let url=require('url');
var date=new Date();

app.use(express.static('public'));

//全局中間件
app.use(function(req,res,next){
  var u=req.url;
  fs.appendFileSync('./logs', u + date + '\r\n');
  next();
});

app.get('/login',function(req,res){
  res.end('login');
});

app.listen(80);

 

4、路由中間件實例路由

(1)登記功能    記錄請求路徑

let express=require('express');
let app=express();

let fs=require('fs');

app.use(express.static('public'));

app.get('/request',function(req,res,next){
  // 登記功能 記錄請求路徑
var u=req.url; fs.appendFileSync('./log',u+'\n\r'); next(); },function(req,res){ res.end('ok'); }); app.listen(80);

 

(2)演示進入後臺設置頁面

  /setting?admin=1 管理員

      /setting 非管理員

let express=require('express');
let app=express();

let url=require('url');

app.use(express.static('public'));

app.get('/setting', function(req, res, next){
    //獲取請求中的  admin 參數
    var admin = url.parse(req.url, true).query.admin;
    //若是是管理員
    if(admin){
        next()
    }else{
        //跳轉
        res.redirect('/login')
    }
    
}, function(req, res){
    res.end('setting page');
});

  app.get('/login',function(req,res){
    res.end('login');
  });


app.listen(80);
相關文章
相關標籤/搜索